Report generated on 21-Sep-2020 at 21:00:25 by pytest-html v2.1.1
| Packages | {"pluggy": "0.13.1", "py": "1.9.0", "pytest": "6.0.2"} |
| Platform | Linux-4.19.76-linuxkit-x86_64-with-glibc2.2.5 |
| Plugins | {"excel": "1.4.1", "forked": "1.3.0", "html": "2.1.1", "json": "0.4.0", "metadata": "1.10.0", "sugar": "0.9.4", "xdist": "2.1.0"} |
| Python | 3.8.5 |
208 tests ran in 52.48 seconds.
(Un)check the boxes to filter the results.
204 passed, 16 skipped, 4 failed, 0 errors, 0 expected failures, 0 unexpected passes| Result | Device | Test | Description | Duration |
|---|---|---|---|---|
| No results found. Try to check the filters | ||||
| Failed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no inDiscards | 0.13 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7fa22d941b50> dut = {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-C...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...erotoucn-config file is on flash', 'expected_output': True, 'name': 'test_for_zerotouch_config_file_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') print(f" - {output_msg}\n{comment}") tests_tools.post_testcase(test_parameters, comment, test_result, output_msg, actual_output, dut_name) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:712: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4) Internet address is 11.201.12.101/24 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 19 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec 77259719 packets input, 9655327290 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 86176971 packets output, 16471228302 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 17 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.2/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 39 days, 19 hours, 37 minutes, 38 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.36/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 39 days, 19 hours, 40 minutes, 42 seconds -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:400 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_mtu_is_correct_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'test_result': False, 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|'} | ||||
| Failed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no inDiscards | 0.27 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7fa22d79f070> dut = {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-C...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...erotoucn-config file is on flash', 'expected_output': True, 'name': 'test_for_zerotouch_config_file_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') print(f" - {output_msg}\n{comment}") tests_tools.post_testcase(test_parameters, comment, test_result, output_msg, actual_output, dut_name) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:712: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756) Internet address is 11.201.13.101/24 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 25 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec 78378489 packets input, 9784753822 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 87876947 packets output, 16614496941 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 23 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.4/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 39 days, 19 hours, 37 minutes, 52 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.38/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 39 days, 19 hours, 40 minutes, 46 seconds -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:400 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'test_result': False, 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|'} | ||||
| Failed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no inDiscards | 0.75 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7f50bc478790> dut = {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...erotoucn-config file is on flash', 'expected_output': True, 'name': 'test_for_zerotouch_config_file_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') print(f" - {output_msg}\n{comment}") tests_tools.post_testcase(test_parameters, comment, test_result, output_msg, actual_output, dut_name) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:712: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6) Internet address is 11.201.14.101/25 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 37 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec 151211386 packets input, 17776325222 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 179673215 packets output, 38396533157 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2 is up, line protocol is up (connected) Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316) Internet address is 11.201.14.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 37 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec 170343351 packets input, 30660889789 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 151031136 packets output, 17735462816 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2.102 is up, line protocol is up (connected) Hardware is Subinterface, address is 023d.7650.e316 Internet address is 11.201.14.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes (default) Up 39 days, 19 hours, 34 minutes, 17 seconds Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 35 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.1/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 39 days, 19 hours, 38 minutes, 1 second Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.35/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 39 days, 19 hours, 40 minutes, 52 seconds Vlan4093 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 39 days, 19 hours, 34 minutes, 17 seconds Vlan4094 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 39 days, 19 hours, 37 minutes, 59 seconds Vxlan1 is up, line protocol is up (connected) Hardware is Vxlan Source interface is Loopback0 and is active with 11.201.0.1 Replication/Flood Mode is headend with Flood List Source: CLI Remote MAC learning is disabled VNI mapping to VLANs Static VLAN to VNI mapping is Dynamic VLAN to VNI mapping for 'evpn' is [4093, 102] [4094, 101] Note: All Dynamic VLANs used by VCS are internal VLANs. Use 'show vxlan vni' for details. Static VRF to VNI mapping is [default, 101] [prod, 102] MLAG Shared Router MAC is 0000.0000.0000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:400 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'test_result': False, 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|'} | ||||
| Failed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no inDiscards | 1.46 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7f50bc533bb0> dut = {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...erotoucn-config file is on flash', 'expected_output': True, 'name': 'test_for_zerotouch_config_file_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') print(f" - {output_msg}\n{comment}") tests_tools.post_testcase(test_parameters, comment, test_result, output_msg, actual_output, dut_name) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:712: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530) Internet address is 11.201.15.101/25 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 14 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 70.9 kbps (- with framing overhead), 69 packets/sec 5 minutes output rate 161 kbps (- with framing overhead), 79 packets/sec 133016979 packets input, 15745660042 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 156846101 packets output, 33327736546 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2 is up, line protocol is up (connected) Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780) Internet address is 11.201.15.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 15 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 88.3 kbps (- with framing overhead), 58 packets/sec 5 minutes output rate 49.2 kbps (- with framing overhead), 51 packets/sec 145589398 packets input, 24205041233 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 131398020 packets output, 14871167273 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2.102 is up, line protocol is up (connected) Hardware is Subinterface, address is 0667.8522.a780 Internet address is 11.201.15.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes (default) Up 39 days, 19 hours, 34 minutes, 12 seconds Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 39 days, 19 hours, 40 minutes, 12 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.3/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 39 days, 19 hours, 37 minutes, 32 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.37/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 39 days, 19 hours, 40 minutes, 36 seconds Vlan4093 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 39 days, 19 hours, 34 minutes, 13 seconds Vlan4094 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 39 days, 19 hours, 37 minutes, 28 seconds Vxlan1 is up, line protocol is up (connected) Hardware is Vxlan Source interface is Loopback0 and is active with 11.201.0.3 Replication/Flood Mode is headend with Flood List Source: CLI Remote MAC learning is disabled VNI mapping to VLANs Static VLAN to VNI mapping is Dynamic VLAN to VNI mapping for 'evpn' is [4093, 102] [4094, 101] Note: All Dynamic VLANs used by VCS are internal VLANs. Use 'show vxlan vni' for details. Static VRF to VNI mapping is [default, 101] [prod, 102] MLAG Shared Router MAC is 0000.0000.0000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:400 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 36.19196144196814, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |36.19196144196814|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2796104 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| memory utilization percent is |36.19196144196814%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 70.9 kbps (- with framing overhead), 69 packets/sec\n 5 minutes output rate 161 kbps (- with framing overhead), 79 packets/sec\n 133016979 packets input, 15745660042 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 156846101 packets output, 33327736546 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.3 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.2 kbps (- with framing overhead), 51 packets/sec\n 145589398 packets input, 24205041233 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 131398020 packets output, 14871167273 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 12 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 12 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 32 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 36 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 13 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 28 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'test_result': False, 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|'} | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEosRR1]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEosRR2]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEOSEdge1]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEOSEdge2]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Passed | kg-topology-CloudEosRR1 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEosRR1] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEosRR1] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show users detail| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEosRR1| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 153969 kgrozis command-api E 0:00:14 local | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA dot1x authentication are method-lists set correct | 0.03 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150824 Last hit: 0 seconds ago Bytes in: 22982306 Bytes out: 367464031 Requests: 142896 Commands: 285792 Duration: 14151.657 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142896 22982306 367464031 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150824 Last hit: 0 seconds ago Bytes in: 22982306 Bytes out: 367464031 Requests: 142896 Commands: 285792 Duration: 14151.657 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142896 22982306 367464031 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEosRR1] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEosRR1| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150818 Last hit: 0 seconds ago Bytes in: 22981342 Bytes out: 367460050 Requests: 142890 Commands: 285780 Duration: 14151.584 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142890 22981342 367460050 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEosRR1] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEosRR1| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150831 Last hit: 0 seconds ago Bytes in: 22983374 Bytes out: 367468173 Requests: 142902 Commands: 285804 Duration: 14151.731 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142902 22983374 367468173 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150825 Last hit: 0 seconds ago Bytes in: 22982471 Bytes out: 367465253 Requests: 142897 Commands: 285794 Duration: 14151.671 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142897 22982471 367465253 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEosRR1] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show daemon| on kg-topology-CloudEosRR1 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEosRR1| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1720) Uptime: 39 days, 19:40:55 (Start time: Thu Aug 13 01:18:47 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 1 minute CPU load average is |2.63%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |2.63| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.87, 2.63, 2.37 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 40-09:04:22 Sfe 1720 2.4 1.8 ? Sl Aug 13 23:02:42 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.6 0.7 ? SNl Sep 18 00:28:59 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 03:11:36 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:16:00 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:20:06 Sysdb 1735 0.1 1.7 ? S Aug 13 01:11:00 SuperServer 1759 0.1 1.0 ? S Aug 13 01:51:50 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:06:44 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:50 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:17 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:26 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:19 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:04:08 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:38 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:19 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:09 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:24 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:13:41 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:03:05 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:57 StageMgr 1575 0.0 1.4 ? S Aug 13 00:16:38 Fru 1576 0.0 1.8 ? S Aug 13 00:06:55 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:25:30 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:17:32 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:19:16 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:19:07 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:42:08 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:17:47 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:21:50 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:25:01 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:54:10 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:07:01 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:11:02 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:21:28 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:17:38 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:39:35 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:33:05 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:08:13 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:17:27 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:17:45 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:27:37 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:17:41 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:20:13 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:08:13 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:08:11 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:16:56 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:59 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:59 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:24:35 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:07:02 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:07:01 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:17:49 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:08:14 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:08:22 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:17:51 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:08:16 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:39:32 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:44 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:07:02 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:19 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:50:42 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:02:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:03:03 /usr/libexec/strongswan/charon --use-syslog 3712 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:2] 4146 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:0] 4544 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:3] 7510 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:09:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:03:21 nginx: worker process 21923 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 1 second CPU load average is |1.87%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.87| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.87, 2.63, 2.37 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 40-09:04:22 Sfe 1720 2.4 1.8 ? Sl Aug 13 23:02:42 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.6 0.7 ? SNl Sep 18 00:28:59 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 03:11:36 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:16:00 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:20:06 Sysdb 1735 0.1 1.7 ? S Aug 13 01:11:00 SuperServer 1759 0.1 1.0 ? S Aug 13 01:51:50 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:06:44 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:50 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:17 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:26 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:19 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:04:08 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:38 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:19 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:09 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:24 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:13:41 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:03:05 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:57 StageMgr 1575 0.0 1.4 ? S Aug 13 00:16:38 Fru 1576 0.0 1.8 ? S Aug 13 00:06:55 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:25:30 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:17:32 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:19:16 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:19:07 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:42:08 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:17:47 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:21:50 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:25:01 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:54:10 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:07:01 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:11:02 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:21:28 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:17:38 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:39:35 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:33:05 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:08:13 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:17:27 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:17:45 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:27:37 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:17:41 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:20:13 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:08:13 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:08:11 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:16:56 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:59 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:59 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:24:35 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:07:02 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:07:01 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:17:49 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:08:14 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:08:22 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:17:51 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:08:16 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:39:32 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:44 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:07:02 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:19 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:50:42 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:02:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:03:03 /usr/libexec/strongswan/charon --use-syslog 3712 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:2] 4146 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:0] 4544 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:3] 7520 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:09:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:03:22 nginx: worker process 21923 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 5 minute CPU load average is |2.37%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |2.37| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.87, 2.63, 2.37 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 40-09:04:22 Sfe 1720 2.4 1.8 ? Sl Aug 13 23:02:42 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.6 0.7 ? SNl Sep 18 00:28:59 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 03:11:35 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:16:00 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:20:06 Sysdb 1735 0.1 1.7 ? S Aug 13 01:11:00 SuperServer 1759 0.1 1.0 ? S Aug 13 01:51:50 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:06:44 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:50 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:17 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:26 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:19 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:04:08 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:38 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:19 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:09 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:24 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:13:41 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:03:05 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:57 StageMgr 1575 0.0 1.4 ? S Aug 13 00:16:38 Fru 1576 0.0 1.8 ? S Aug 13 00:06:55 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:25:30 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:17:32 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:19:16 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:19:07 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:42:08 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:17:47 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:21:50 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:25:01 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:54:10 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:07:01 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:11:02 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:21:28 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:17:38 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:39:35 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:33:05 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:08:13 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:17:27 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:17:45 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:27:37 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:17:41 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:20:13 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:08:13 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:08:11 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:16:56 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:59 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:59 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:24:35 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:07:02 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:07:01 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:17:49 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:08:14 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:08:22 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:17:51 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:08:16 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:39:32 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:44 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:07:02 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:19 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:50:42 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:02:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:03:03 /usr/libexec/strongswan/charon --use-syslog 3712 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:2] 4146 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:0] 4544 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:3] 7505 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 7506 0.0 0.0 ? Rs 20:59:36 00:00:00 [ConfigAgent] 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:09:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:03:21 nginx: worker process 21923 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEosRR1] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEosRR1| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:400 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show daemon| on kg-topology-CloudEosRR1 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1720) Uptime: 39 days, 19:40:55 (Start time: Thu Aug 13 01:18:47 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEosRR1] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| awslogs.swix extension error is |False| On router |kg-topology-CloudEosRR1| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show extensions| on kg-topology-CloudEosRR1 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEosRR1| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEosRR1| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEosRR1] | Verify hostname is set on device is correct | 0.20 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1| TEST is hostname correct. GIVEN hostname |kg-topology-CloudEosRR1|. WHEN hostname is |kg-topology-CloudEosRR1|. THEN test case result is |True|. OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEosRR1 FQDN: kg-topology-CloudEosRR1 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'} INFO root:tests_tools.py:400 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show hostname| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_host.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'name': 'test_if_hostname_is_correcet_on_', 'duts': []}]}] INFO root:tests_tools.py:557 Test suite test_host.py exists in results file at index 0 INFO root:tests_tools.py:565 Find Index for test case: test_if_hostname_is_correcet_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:570 Test case test_if_hostname_is_correcet_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_hostname_is_correcet_on_ with parameters {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'test_suite': 'test_host.py', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'actual_output': 'kg-topology-CloudEosRR1', 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest link statuses are up | 0.22 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:400 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}] INFO root:tests_tools.py:560 Create test suite test_interface.py in results file INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_link_status_is_connected_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'actual_output': 'connected', 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEosRR1] | Verify filesystem is correct and expected files are present | 0.77 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEosRR1|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEosRR1|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.836969, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.504951, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.025939, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 48802.07351361231, 'inPktsRate': 43.54546086747888, 'outBitsRate': 93972.18921647844, 'updateInterval': 300.0, 'outPktsRate': 46.90488516388339}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 86176971, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.50636, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9655327290, 'outDiscards': 0, 'outOctets': 16471228302, 'inUcastPkts': 77259719, 'inTotalPkts': 77259719, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.0804734, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3440515.5, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2940696, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3488662, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 82962, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 1739, 'memPct': 0.7, 'cpuPct': 0.6, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 11495, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 8160, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 8406, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 4260, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6710, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 4004, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 530, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 248, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 398, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 79, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 9, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 821, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 185, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 417, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 998, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 415, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1530, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 1052, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1156, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1147, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2528, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 1067, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1310, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1501, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 3250, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 421, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 662, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1288, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 1058, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2375, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1985, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 493, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 1047, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 1065, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1657, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 1061, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1213, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 493, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 491, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 1016, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 419, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 419, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1475, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 422, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 421, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 1069, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 494, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 502, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 1071, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 496, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2372, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 44, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 422, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 79, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 3042, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 120, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 183, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3712': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720920.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '4146': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '4544': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721640.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '7497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '7498': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': '[ConfigAgent]', 'state': 'Rs', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 597, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 201, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440515.97, 'loadAvg': [1.87, 2.63, 2.37], 'users': 0, 'currentTime': 1600721976.858671}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.87, 2.63, 2.37\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 40-09:04:22 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 23:02:42 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.6 0.7 ? SNl Sep 18 00:28:59 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 03:11:36 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:16:00 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:20:06 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:11:00 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:51:50 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:06:44 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:50 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:17 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:26 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:19 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:04:08 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:38 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:19 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:09 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:24 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:13:41 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:03:05 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:57 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:16:38 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:55 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:25:30 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:17:32 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:19:16 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:19:07 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:42:08 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:17:47 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:21:50 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:25:01 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:54:10 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:07:01 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:11:02 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:21:28 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:17:38 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:39:35 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:33:05 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:08:13 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:17:27 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:17:45 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:27:37 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:17:41 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:20:13 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:08:13 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:08:11 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:16:56 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:59 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:59 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:24:35 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:07:02 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:07:01 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:17:49 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:08:14 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:08:22 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:17:51 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:08:16 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:39:32 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:44 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:07:02 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:19 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:50:42 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:02:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:03:03 /usr/libexec/strongswan/charon --use-syslog\n 3712 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:2]\n 4146 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:0]\n 4544 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:3]\n 7513 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 7514 0.0 0.0 ? Rs 20:59:36 00:00:00 [ConfigAgent]\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:09:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:03:21 nginx: worker process \n21923 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 153868, 'authorizationAllowed': 1296, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 121, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 153872\n Failed: 1\n Service unavailable: 121\n\nAuthorization\n Allowed: 1296\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'153969': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n153969 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 512, 'stratum': 4, 'maxEstimatedError': 20, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 20 ms\n polling server every 512 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.115, 'jitter': 0.181, 'lastReceived': 1600721832.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.334, 'peerIpAddr': '169.254.169.123', 'pollInterval': 512, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 150 512 377 0.115 0.334 0.181\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.471492, 'pid': 1720, 'enabled': True, 'uptime': 3440455.03, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 39 days, 19:40:55 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 142892, 'bytesOut': 367461573, 'lastHitTime': 1600721984.327318, 'bytesIn': 22981670}}, 'bytesOut': 367461573, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 150820, 'vrf': 'default', 'lastHitTime': 1600721984.327273, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 14151.607880178024, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 142892, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 22981670, 'commandCount': 285784, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 150824\nLast hit: 0 seconds ago\nBytes in: 22982306\nBytes out: 367464031\nRequests: 142896\nCommands: 285792\nDuration: 14151.657 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 142896 22982306 367464031 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.836969, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.504951, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.025939, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 48802.07351361231, 'inPktsRate': 43.54546086747888, 'outBitsRate': 93972.18921647844, 'updateInterval': 300.0, 'outPktsRate': 46.90488516388339}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 86176971, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.50636, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9655327290, 'outDiscards': 0, 'outOctets': 16471228302, 'inUcastPkts': 77259719, 'inTotalPkts': 77259719, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.0804734, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3440515.5, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2940696, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3488662, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 82962, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 1739, 'memPct': 0.7, 'cpuPct': 0.6, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 11495, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 8160, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 8406, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 4260, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6710, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 4004, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 530, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 248, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 398, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 79, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 9, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 821, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 185, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 417, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 998, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 415, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1530, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 1052, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1156, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1147, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2528, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 1067, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1310, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1501, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 3250, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 421, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 662, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1288, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 1058, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2375, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1985, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 493, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 1047, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 1065, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1657, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 1061, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1213, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 493, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 491, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 1016, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 419, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 419, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1475, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 422, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 421, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 1069, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 494, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 502, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 1071, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 496, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2372, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 44, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 422, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 79, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 3042, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 120, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 183, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3712': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720920.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '4146': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '4544': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721640.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '7497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '7498': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': '[ConfigAgent]', 'state': 'Rs', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 597, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 201, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440515.97, 'loadAvg': [1.87, 2.63, 2.37], 'users': 0, 'currentTime': 1600721976.858671}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.87, 2.63, 2.37\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 40-09:04:22 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 23:02:42 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.6 0.7 ? SNl Sep 18 00:28:59 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 03:11:36 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:16:00 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:20:06 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:11:00 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:51:50 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:06:44 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:50 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:17 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:26 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:19 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:04:08 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:38 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:19 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:09 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:24 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:13:41 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:03:05 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:57 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:16:38 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:55 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:25:30 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:17:32 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:19:16 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:19:07 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:42:08 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:17:47 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:21:50 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:25:01 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:54:10 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:07:01 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:11:02 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:21:28 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:17:38 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:39:35 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:33:05 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:08:13 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:17:27 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:17:45 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:27:37 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:17:41 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:20:13 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:08:13 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:08:11 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:16:56 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:59 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:59 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:24:35 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:07:02 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:07:01 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:17:49 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:08:14 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:08:22 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:17:51 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:08:16 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:39:32 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:44 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:07:02 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:19 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:50:42 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:02:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:03:03 /usr/libexec/strongswan/charon --use-syslog\n 3712 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:2]\n 4146 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:0]\n 4544 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:3]\n 7513 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 7514 0.0 0.0 ? Rs 20:59:36 00:00:00 [ConfigAgent]\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:09:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:03:21 nginx: worker process \n21923 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 153868, 'authorizationAllowed': 1296, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 121, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 153872\n Failed: 1\n Service unavailable: 121\n\nAuthorization\n Allowed: 1296\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'153969': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n153969 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 512, 'stratum': 4, 'maxEstimatedError': 20, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 20 ms\n polling server every 512 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.115, 'jitter': 0.181, 'lastReceived': 1600721832.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.334, 'peerIpAddr': '169.254.169.123', 'pollInterval': 512, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 150 512 377 0.115 0.334 0.181\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.471492, 'pid': 1720, 'enabled': True, 'uptime': 3440455.03, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 39 days, 19:40:55 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 142892, 'bytesOut': 367461573, 'lastHitTime': 1600721984.327318, 'bytesIn': 22981670}}, 'bytesOut': 367461573, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 150820, 'vrf': 'default', 'lastHitTime': 1600721984.327273, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 14151.607880178024, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 142892, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 22981670, 'commandCount': 285784, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 150824\nLast hit: 0 seconds ago\nBytes in: 22982306\nBytes out: 367464031\nRequests: 142896\nCommands: 285792\nDuration: 14151.657 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 142896 22982306 367464031 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.836969, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.504951, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.025939, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 48802.07351361231, 'inPktsRate': 43.54546086747888, 'outBitsRate': 93972.18921647844, 'updateInterval': 300.0, 'outPktsRate': 46.90488516388339}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 86176971, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.50636, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9655327290, 'outDiscards': 0, 'outOctets': 16471228302, 'inUcastPkts': 77259719, 'inTotalPkts': 77259719, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.0804734, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3440515.5, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2940696, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3488662, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 82962, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 1739, 'memPct': 0.7, 'cpuPct': 0.6, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 11495, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 8160, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 8406, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 4260, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6710, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 4004, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 530, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 19, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 248, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 398, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 79, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 9, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 821, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 185, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 417, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 998, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 415, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1530, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 1052, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1156, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1147, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2528, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 1067, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1310, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1501, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 3250, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 421, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 662, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1288, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 1058, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2375, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1985, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 493, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 1047, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 1065, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1657, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 1061, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1213, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 493, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 491, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 1016, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 419, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 419, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1475, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 422, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 421, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 1069, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 494, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 502, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 1071, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 496, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2372, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 44, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 422, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 79, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 3042, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 120, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 183, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3712': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720920.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '4146': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '4544': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721640.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '7497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '7498': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': '[ConfigAgent]', 'state': 'Rs', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 597, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 201, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440515.97, 'loadAvg': [1.87, 2.63, 2.37], 'users': 0, 'currentTime': 1600721976.858671}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.87, 2.63, 2.37\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 40-09:04:22 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 23:02:42 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.6 0.7 ? SNl Sep 18 00:28:59 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 03:11:36 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:16:00 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:20:06 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:11:00 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:51:50 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:06:44 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:50 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:17 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:26 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:19 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:04:08 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:38 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:19 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:09 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:24 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:13:41 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:03:05 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:57 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:16:38 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:55 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:25:30 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:17:32 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:19:16 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:19:07 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:42:08 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:17:47 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:21:50 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:25:01 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:54:10 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:07:01 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:11:02 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:21:28 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:17:38 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:39:35 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:33:05 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:08:13 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:17:27 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:17:45 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:27:37 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:17:41 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:20:13 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:08:13 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:08:11 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:16:56 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:59 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:59 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:24:35 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:07:02 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:07:01 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:17:49 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:08:14 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:08:22 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:17:51 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:08:16 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:39:32 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:44 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:07:02 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:19 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:50:42 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:02:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:03:03 /usr/libexec/strongswan/charon --use-syslog\n 3712 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:2]\n 4146 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:0]\n 4544 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:3]\n 7513 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 7514 0.0 0.0 ? Rs 20:59:36 00:00:00 [ConfigAgent]\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:09:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:03:21 nginx: worker process \n21923 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 153868, 'authorizationAllowed': 1296, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 121, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 153872\n Failed: 1\n Service unavailable: 121\n\nAuthorization\n Allowed: 1296\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'153969': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n153969 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 512, 'stratum': 4, 'maxEstimatedError': 20, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 20 ms\n polling server every 512 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.115, 'jitter': 0.181, 'lastReceived': 1600721832.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.334, 'peerIpAddr': '169.254.169.123', 'pollInterval': 512, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 150 512 377 0.115 0.334 0.181\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.471492, 'pid': 1720, 'enabled': True, 'uptime': 3440455.03, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 39 days, 19:40:55 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 142892, 'bytesOut': 367461573, 'lastHitTime': 1600721984.327318, 'bytesIn': 22981670}}, 'bytesOut': 367461573, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 150820, 'vrf': 'default', 'lastHitTime': 1600721984.327273, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 14151.607880178024, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 142892, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 22981670, 'commandCount': 285784, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 150824\nLast hit: 0 seconds ago\nBytes in: 22982306\nBytes out: 367464031\nRequests: 142896\nCommands: 285792\nDuration: 14151.657 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 142896 22982306 367464031 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest does not have input errors | 0.04 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_counters_has_input_errors_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEosRR1] | Verify DNS is running by performing pings and verifying name resolution | 1.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for google.com On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.9.78) 72(100) bytes of data. 76 bytes from ord38s09-in-f14.1e100.net (172.217.9.78): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord38s09-in-f14.1e100.net (172.217.9.78): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord38s09-in-f14.1e100.net (172.217.9.78): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord38s09-in-f14.1e100.net (172.217.9.78): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord38s09-in-f14.1e100.net (172.217.9.78): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 17.185/17.214/17.251/0.145 ms, pipe 2, ipg/ewma 15.439/17.206 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.65.67) 72(100) bytes of data. 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=1 ttl=39 time=11.3 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=2 ttl=39 time=11.3 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=3 ttl=39 time=11.3 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=4 ttl=39 time=11.3 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=5 ttl=39 time=11.3 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 44ms rtt min/avg/max/mdev = 11.361/11.370/11.383/0.008 ms, pipe 2, ipg/ewma 11.005/11.376 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=23.6 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=23.6 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=23.6 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=23.6 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 68ms rtt min/avg/max/mdev = 23.671/23.683/23.703/0.011 ms, pipe 3, ipg/ewma 17.078/23.683 ms | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no frameTooShorts errors | 0.05 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_counters_has_frame_too_short_errors_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest physical state is link up | 0.25 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEosRR1 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:400 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:447 Verify if kg-topology-CloudEosRR1 DUT is a VEOS instance INFO root:tests_tools.py:451 kg-topology-CloudEosRR1 is a VEOS instance so returning True INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_phy_status_connected_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'test_suite': 'test_interface.py', 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'test_result': True, 'output_msg': None, 'actual_output': None, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEosRR1] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| awslogs.swix extension is |installed| On router |kg-topology-CloudEosRR1| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show extensions| on kg-topology-CloudEosRR1 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEosRR1| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEosRR1| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no fcsErrors errors | 0.08 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_counters_has_fcs_errors_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no alignmentErrors errors | 0.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_counters_has_symbol_errors_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no frameLongShorts errors | 0.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_counters_has_frame_too_long_errors_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no inDiscards | 0.08 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_in_counters_are_discarding_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_rx_is_enabled_on_[kg-topology-CloudEosRR1] | Verify LLDP receive is enabled on interesting interfaces | 0.10 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:400 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show lldp| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}]}] INFO root:tests_tools.py:560 Create test suite test_lldp.py in results file INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_lldp_rx_is_enabled_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_lldp_rx_is_enabled_on_ with parameters {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no outDiscards | 0.16 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_out_counters_are_discarding_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEosRR1] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| message |critical| NOT found in local log On router |kg-topology-CloudEosRR1| message |warning| NOT found in local log On router |kg-topology-CloudEosRR1| message |ECC| NOT found in local log On router |kg-topology-CloudEosRR1| message |servers errors| NOT found in local log On router |kg-topology-CloudEosRR1| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show logging| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show logging| on kg-topology-CloudEosRR1 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 19:57:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 19:58:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 19:59:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:02:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:03:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:06:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:52 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:05 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:29 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest protocol statuses are up | 0.49 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:400 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_protocol_status_is_connected_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'actual_output': 'up', 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEosRR1] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show ntp status| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 20 ms polling server every 512 s | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEosRR1] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.87, 2.63, 2.37 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 40-09:04:22 Sfe 1720 2.4 1.8 ? Sl Aug 13 23:02:42 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.6 0.7 ? SNl Sep 18 00:28:59 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 03:11:36 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:16:00 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:20:06 Sysdb 1735 0.1 1.7 ? S Aug 13 01:11:00 SuperServer 1759 0.1 1.0 ? S Aug 13 01:51:50 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:06:44 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:50 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:17 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:26 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:19 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:04:08 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:38 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:19 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:09 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:24 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:13:41 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:03:05 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:57 StageMgr 1575 0.0 1.4 ? S Aug 13 00:16:38 Fru 1576 0.0 1.8 ? S Aug 13 00:06:55 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:25:30 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:17:32 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:19:16 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:19:07 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:42:08 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:17:47 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:21:50 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:25:01 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:54:10 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:07:01 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:11:02 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:21:28 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:17:38 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:39:35 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:33:05 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:08:13 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:17:27 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:17:45 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:27:37 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:17:41 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:20:13 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:08:13 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:08:11 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:16:56 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:59 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:59 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:24:35 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:07:02 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:07:01 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:17:49 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:08:14 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:08:22 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:17:51 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:08:16 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:39:32 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:44 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:07:02 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:19 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:50:42 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:02:00 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:03:03 /usr/libexec/strongswan/charon --use-syslog 3712 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:2] 4146 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:0] 4544 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:3] 7520 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:09:57 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:03:22 nginx: worker process 21923 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR1 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_tx_is_enabled_on_[kg-topology-CloudEosRR1] | Verify LLDP transmit is enabled on interesting interfaces | 0.12 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True| TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|. GIVEN LLDP transmit state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_lldp_tx_is_enabled_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_lldp_tx_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:400 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show lldp| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_tx_is_enabled_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_lldp_tx_is_enabled_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_lldp_tx_is_enabled_on_ with parameters {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEosRR1] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show tacacs| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:424 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:430 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEosRR1| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest does not have output errors | 0.12 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_counters_has_output_errors_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEosRR1] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show zerotouch| on kg-topology-CloudEosRR1 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEosRR1| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEosRR1] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show ntp associations| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 150 512 377 0.115 0.334 0.181 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEosRR2] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEosRR2| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150819 Last hit: 0 seconds ago Bytes in: 22981217 Bytes out: 367373486 Requests: 142887 Commands: 285774 Duration: 11399.855 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142887 22981217 367373486 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no alignmentErrors errors | 0.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_if_intf_counters_has_alignment_errors_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEosRR2] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| awslogs.swix extension is |installed| On router |kg-topology-CloudEosRR2| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show extensions| on kg-topology-CloudEosRR2 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEosRR2| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEosRR2| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEosRR1] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| |ec2-user| username is |configured| On router |kg-topology-CloudEosRR1| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show running-config section username| on kg-topology-CloudEosRR1 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEosRR1| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEosRR1| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEosRR2] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEosRR2] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEosRR2| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150819 Last hit: 0 seconds ago Bytes in: 22981217 Bytes out: 367373486 Requests: 142887 Commands: 285774 Duration: 11399.855 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142887 22981217 367373486 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEosRR2] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| awslogs.swix extension error is |False| On router |kg-topology-CloudEosRR2| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show extensions| on kg-topology-CloudEosRR2 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEosRR2| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEosRR2| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150819 Last hit: 0 seconds ago Bytes in: 22981217 Bytes out: 367373486 Requests: 142887 Commands: 285774 Duration: 11399.855 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142887 22981217 367373486 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEosRR2] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show users detail| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEosRR2| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 154106 kgrozis command-api E 0:00:14 local | ||||
| Passed | kg-topology-CloudEosRR1 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEosRR1] | Verify memory is not exceeding high utlization | 0.15 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ - On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%| TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|. GIVEN memory utilization is less than |70|. WHEN memory utilization is |37.88877046797791|. THEN test case result is |True|. OUTPUT of |show version| is: Arista vEOS Hardware version: Serial number: 9B112703F293F47ADC3EE25318457B64 System MAC address: 0246.bb59.d5ae Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 4 days, 19 hours and 41 minutes Total memory: 7761392 kB Free memory: 2940696 kB -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_memory_utilization_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show version| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show version| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:550 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}] INFO root:tests_tools.py:560 Create test suite test_memory.py in results file INFO root:tests_tools.py:565 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:573 Create test case test_memory_utilization_on_ in results file INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR1 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'result': True, 'test_suite': 'test_memory.py', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'actual_output': 37.88877046797791, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150819 Last hit: 0 seconds ago Bytes in: 22981217 Bytes out: 367373486 Requests: 142887 Commands: 285774 Duration: 11399.855 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142887 22981217 367373486 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEosRR1] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |show tacacs| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:424 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:430 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEosRR1| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 1 second CPU load average is |1.45%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.45| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 20:59:36 up 39 days, 19:41, 0 users, load average: 1.45, 1.28, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 40-18:15:06 Sfe 1714 0.4 1.9 ? Sl Aug 13 03:51:48 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 31419 0.2 0.7 ? SNl Sep 19 00:08:15 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1255 0.1 0.9 ? S Aug 13 01:48:16 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:53:12 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:35 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:34 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:37 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:18 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:26 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:12:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:58 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:42:20 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:51 StageMgr 1570 0.0 1.4 ? S Aug 13 00:02:03 Fru 1571 0.0 1.8 ? S Aug 13 00:00:46 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:10:46 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:04:11 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:31 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:05:01 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:20:00 Lag 1729 0.0 1.7 ? S Aug 13 00:40:17 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:22 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:23 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:48 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:30:41 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:45 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:45:55 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:43 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:11:34 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:04:01 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:22:47 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:34 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:34 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:31 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:52 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:05:18 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:04:03 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:03:07 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:33 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:21 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:02:01 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:43 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:44 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:39 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:44 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:04:10 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:33 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:09:09 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:39 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:28 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:37 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:12:45 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:40 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:47 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:25 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:11:14 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:10 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:55 /usr/libexec/strongswan/charon --use-syslog 3463 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3] 3861 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:1] 6834 0.0 0.0 ? Rs 20:59:35 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:51 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:28 nginx: worker process 30877 0.0 0.0 ? S 20:27:00 00:00:00 [kworker/0:2] 31379 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEosRR2] | Verify filesystem is correct and expected files are present | 0.70 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEosRR2|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEosRR2|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126427, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.52078, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.902183, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 46781.479983494486, 'inPktsRate': 40.871236619333594, 'outBitsRate': 90365.5442772693, 'updateInterval': 300.0, 'outPktsRate': 43.12733788696529}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 87876947, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.523311, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9784753822, 'outDiscards': 0, 'outOctets': 16614496941, 'inUcastPkts': 78378489, 'inTotalPkts': 78378489, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.2862363, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3440517.35, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 2968496, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2968168 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3521705, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1714': {'totalActiveTime': 13908, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '31419': {'totalActiveTime': 495, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1600515906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6496, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6792, 'memPct': 7.2, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 335, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 53, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 94, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 97, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 203, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 765, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 178, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2540, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 51, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 123, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 46, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 646, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 251, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 151, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 301, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1200, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2417, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 262, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 203, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 528, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1841, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 45, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2755, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 103, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 694, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 241, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1367, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 334, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 154, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 211, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 232, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 318, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 243, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 187, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 153, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 81, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 121, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 43, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 459, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 44, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 250, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 153, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 549, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 159, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 268, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 157, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 765, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 40, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 47, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 674, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 70, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 115, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3463': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '3861': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721640.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6829': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 171, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 148, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30877': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720020.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '31379': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600515904.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440517.82, 'loadAvg': [1.45, 1.28, 1.22], 'users': 0, 'currentTime': 1600721976.785776}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.45, 1.28, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 40-18:15:06 Sfe\n 1714 0.4 1.9 ? Sl Aug 13 03:51:48 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n31419 0.2 0.7 ? SNl Sep 19 00:08:15 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1255 0.1 0.9 ? S Aug 13 01:48:16 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:53:12 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:35 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:34 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:37 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:18 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:26 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:12:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:58 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:42:20 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:51 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:02:03 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:46 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:10:46 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:04:11 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:31 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:05:01 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:20:00 Lag\n 1729 0.0 1.7 ? S Aug 13 00:40:17 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:22 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:23 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:48 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:30:41 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:45 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:45:55 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:43 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:11:34 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:04:01 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:22:47 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:34 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:34 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:31 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:52 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:05:18 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:04:03 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:03:07 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:33 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:21 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:02:01 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:43 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:44 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:39 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:44 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:04:10 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:33 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:09:09 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:39 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:28 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:37 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:12:45 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:40 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:47 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:25 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:11:14 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:10 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:55 /usr/libexec/strongswan/charon --use-syslog\n 3463 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3]\n 3861 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:1]\n 6845 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 6846 0.0 0.0 ? Rs 20:59:36 00:00:00 uptime\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:51 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:28 nginx: worker process \n30877 0.0 0.0 ? S 20:27:00 00:00:00 [kworker/0:2]\n31379 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 154002, 'authorizationAllowed': 1438, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 126, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 154006\n Failed: 0\n Service unavailable: 126\n\nAuthorization\n Allowed: 1438\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'154106': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n154106 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 18, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 18 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.106, 'jitter': 0.332, 'lastReceived': 1600721728.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.088, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 253 1024 377 0.106 0.088 0.332\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.1286871, 'pid': 1714, 'enabled': True, 'uptime': 3440457.8899999997, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 39 days, 19:40:58 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 142886, 'bytesOut': 367372478, 'lastHitTime': 1600721983.5241635, 'bytesIn': 22981052}}, 'bytesOut': 367372478, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 150818, 'vrf': 'default', 'lastHitTime': 1600721983.5241327, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 11399.84723883975, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 142886, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 22981052, 'commandCount': 285772, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 150821\nLast hit: 0 seconds ago\nBytes in: 22981525\nBytes out: 367374837\nRequests: 142889\nCommands: 285778\nDuration: 11399.917 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 142889 22981525 367374837 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126427, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.52078, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.902183, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 46781.479983494486, 'inPktsRate': 40.871236619333594, 'outBitsRate': 90365.5442772693, 'updateInterval': 300.0, 'outPktsRate': 43.12733788696529}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 87876947, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.523311, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9784753822, 'outDiscards': 0, 'outOctets': 16614496941, 'inUcastPkts': 78378489, 'inTotalPkts': 78378489, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.2862363, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3440517.35, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 2968496, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2968168 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3521705, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1714': {'totalActiveTime': 13908, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '31419': {'totalActiveTime': 495, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1600515906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6496, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6792, 'memPct': 7.2, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 335, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 53, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 94, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 97, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 203, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 765, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 178, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2540, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 51, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 123, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 46, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 646, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 251, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 151, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 301, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1200, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2417, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 262, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 203, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 528, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1841, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 45, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2755, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 103, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 694, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 241, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1367, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 334, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 154, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 211, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 232, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 318, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 243, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 187, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 153, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 81, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 121, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 43, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 459, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 44, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 250, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 153, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 549, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 159, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 268, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 157, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 765, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 40, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 47, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 674, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 70, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 115, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3463': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '3861': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721640.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6829': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 171, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 148, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30877': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720020.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '31379': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600515904.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440517.82, 'loadAvg': [1.45, 1.28, 1.22], 'users': 0, 'currentTime': 1600721976.785776}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.45, 1.28, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 40-18:15:06 Sfe\n 1714 0.4 1.9 ? Sl Aug 13 03:51:48 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n31419 0.2 0.7 ? SNl Sep 19 00:08:15 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1255 0.1 0.9 ? S Aug 13 01:48:16 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:53:12 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:35 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:34 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:37 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:18 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:26 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:12:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:58 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:42:20 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:51 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:02:03 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:46 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:10:46 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:04:11 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:31 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:05:01 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:20:00 Lag\n 1729 0.0 1.7 ? S Aug 13 00:40:17 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:22 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:23 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:48 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:30:41 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:45 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:45:55 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:43 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:11:34 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:04:01 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:22:47 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:34 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:34 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:31 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:52 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:05:18 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:04:03 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:03:07 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:33 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:21 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:02:01 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:43 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:44 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:39 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:44 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:04:10 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:33 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:09:09 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:39 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:28 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:37 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:12:45 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:40 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:47 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:25 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:11:14 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:10 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:55 /usr/libexec/strongswan/charon --use-syslog\n 3463 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3]\n 3861 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:1]\n 6845 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 6846 0.0 0.0 ? Rs 20:59:36 00:00:00 uptime\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:51 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:28 nginx: worker process \n30877 0.0 0.0 ? S 20:27:00 00:00:00 [kworker/0:2]\n31379 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 154002, 'authorizationAllowed': 1438, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 126, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 154006\n Failed: 0\n Service unavailable: 126\n\nAuthorization\n Allowed: 1438\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'154106': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n154106 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 18, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 18 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.106, 'jitter': 0.332, 'lastReceived': 1600721728.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.088, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 253 1024 377 0.106 0.088 0.332\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.1286871, 'pid': 1714, 'enabled': True, 'uptime': 3440457.8899999997, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 39 days, 19:40:58 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 142886, 'bytesOut': 367372478, 'lastHitTime': 1600721983.5241635, 'bytesIn': 22981052}}, 'bytesOut': 367372478, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 150818, 'vrf': 'default', 'lastHitTime': 1600721983.5241327, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 11399.84723883975, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 142886, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 22981052, 'commandCount': 285772, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 150821\nLast hit: 0 seconds ago\nBytes in: 22981525\nBytes out: 367374837\nRequests: 142889\nCommands: 285778\nDuration: 11399.917 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 142889 22981525 367374837 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126427, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.52078, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.902183, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 46781.479983494486, 'inPktsRate': 40.871236619333594, 'outBitsRate': 90365.5442772693, 'updateInterval': 300.0, 'outPktsRate': 43.12733788696529}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 87876947, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.523311, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9784753822, 'outDiscards': 0, 'outOctets': 16614496941, 'inUcastPkts': 78378489, 'inTotalPkts': 78378489, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.2862363, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3440517.35, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 2968496, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2968168 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3521705, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1714': {'totalActiveTime': 13908, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '31419': {'totalActiveTime': 495, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1600515906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6496, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6792, 'memPct': 7.2, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 335, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 53, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 94, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 97, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 203, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 26, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 765, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 178, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2540, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 51, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 123, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 46, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 646, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 251, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 151, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 301, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1200, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2417, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 262, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 203, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 528, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1841, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 45, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2755, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 103, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 694, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 241, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1367, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 334, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 154, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 211, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 232, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 318, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 243, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 187, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 153, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 81, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 121, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 43, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 459, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 44, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 250, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 153, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 549, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 159, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 268, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 157, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 765, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 40, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 47, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 674, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 70, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 115, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3463': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '3861': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721640.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6829': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721975.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 171, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 148, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30877': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720020.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '31379': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600515904.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440517.82, 'loadAvg': [1.45, 1.28, 1.22], 'users': 0, 'currentTime': 1600721976.785776}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.45, 1.28, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 40-18:15:06 Sfe\n 1714 0.4 1.9 ? Sl Aug 13 03:51:48 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n31419 0.2 0.7 ? SNl Sep 19 00:08:15 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1255 0.1 0.9 ? S Aug 13 01:48:16 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:53:12 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:35 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:34 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:37 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:18 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:26 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:12:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:58 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:42:20 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:51 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:02:03 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:46 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:10:46 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:04:11 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:31 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:05:01 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:20:00 Lag\n 1729 0.0 1.7 ? S Aug 13 00:40:17 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:22 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:23 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:48 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:30:41 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:45 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:45:55 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:43 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:11:34 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:04:01 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:22:47 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:34 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:34 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:31 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:52 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:05:18 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:04:03 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:03:07 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:33 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:21 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:02:01 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:43 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:44 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:39 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:44 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:04:10 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:33 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:09:09 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:39 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:28 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:37 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:12:45 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:40 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:47 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:25 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:11:14 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:10 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:55 /usr/libexec/strongswan/charon --use-syslog\n 3463 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3]\n 3861 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:1]\n 6845 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 6846 0.0 0.0 ? Rs 20:59:36 00:00:00 uptime\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:51 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:28 nginx: worker process \n30877 0.0 0.0 ? S 20:27:00 00:00:00 [kworker/0:2]\n31379 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 154002, 'authorizationAllowed': 1438, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 126, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 154006\n Failed: 0\n Service unavailable: 126\n\nAuthorization\n Allowed: 1438\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'154106': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n154106 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 18, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 18 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.106, 'jitter': 0.332, 'lastReceived': 1600721728.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.088, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 253 1024 377 0.106 0.088 0.332\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.1286871, 'pid': 1714, 'enabled': True, 'uptime': 3440457.8899999997, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 39 days, 19:40:58 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 142886, 'bytesOut': 367372478, 'lastHitTime': 1600721983.5241635, 'bytesIn': 22981052}}, 'bytesOut': 367372478, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 150818, 'vrf': 'default', 'lastHitTime': 1600721983.5241327, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 11399.84723883975, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 142886, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 22981052, 'commandCount': 285772, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 150821\nLast hit: 0 seconds ago\nBytes in: 22981525\nBytes out: 367374837\nRequests: 142889\nCommands: 285778\nDuration: 11399.917 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 142889 22981525 367374837 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEosRR1] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:404 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEosRR1 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEosRR1| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7293403136 bytes free) | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 1 minute CPU load average is |1.28%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.28| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 20:59:36 up 39 days, 19:41, 0 users, load average: 1.45, 1.28, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 40-18:15:06 Sfe 1714 0.4 1.9 ? Sl Aug 13 03:51:48 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 31419 0.2 0.7 ? SNl Sep 19 00:08:15 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1255 0.1 0.9 ? S Aug 13 01:48:16 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:53:12 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:35 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:34 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:37 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:18 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:26 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:12:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:58 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:42:20 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:51 StageMgr 1570 0.0 1.4 ? S Aug 13 00:02:03 Fru 1571 0.0 1.8 ? S Aug 13 00:00:46 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:10:46 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:04:11 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:31 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:05:01 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:20:00 Lag 1729 0.0 1.7 ? S Aug 13 00:40:17 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:22 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:23 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:48 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:30:41 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:45 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:45:55 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:43 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:11:34 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:04:01 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:22:47 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:34 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:34 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:31 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:52 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:05:18 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:04:03 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:03:07 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:33 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:21 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:02:01 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:43 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:44 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:39 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:44 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:04:10 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:33 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:09:09 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:39 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:28 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:37 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:12:45 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:40 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:47 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:25 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:11:14 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:10 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:55 /usr/libexec/strongswan/charon --use-syslog 3463 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3] 3861 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:1] 6834 0.0 0.0 ? Rs 20:59:35 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:51 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:28 nginx: worker process 30877 0.0 0.0 ? S 20:27:00 00:00:00 [kworker/0:2] 31379 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEosRR2] | Verify hostname is set on device is correct | 0.17 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2| TEST is hostname correct. GIVEN hostname |kg-topology-CloudEosRR2|. WHEN hostname is |kg-topology-CloudEosRR2|. THEN test case result is |True|. OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEosRR2 FQDN: kg-topology-CloudEosRR2 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'} INFO root:tests_tools.py:400 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show hostname| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_host.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_host.py exists in results file at index 0 INFO root:tests_tools.py:565 Find Index for test case: test_if_hostname_is_correcet_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_hostname_is_correcet_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_hostname_is_correcet_on_ with parameters {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'test_suite': 'test_host.py', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'actual_output': 'kg-topology-CloudEosRR2', 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 5 minute CPU load average is |1.22%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.22| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 20:59:36 up 39 days, 19:41, 0 users, load average: 1.45, 1.28, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 40-18:15:06 Sfe 1714 0.4 1.9 ? Sl Aug 13 03:51:48 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 31419 0.2 0.7 ? SNl Sep 19 00:08:15 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1255 0.1 0.9 ? S Aug 13 01:48:16 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:53:12 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:35 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:34 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:37 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:18 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:26 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:12:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:58 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:42:20 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:51 StageMgr 1570 0.0 1.4 ? S Aug 13 00:02:03 Fru 1571 0.0 1.8 ? S Aug 13 00:00:46 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:10:46 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:04:11 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:31 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:05:01 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:20:00 Lag 1729 0.0 1.7 ? S Aug 13 00:40:17 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:22 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:23 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:48 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:30:41 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:45 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:45:55 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:43 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:11:34 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:04:01 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:22:47 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:34 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:34 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:31 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:52 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:05:18 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:04:03 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:03:07 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:33 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:21 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:02:01 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:43 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:44 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:39 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:44 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:04:10 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:33 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:09:09 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:39 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:28 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:37 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:12:45 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:40 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:47 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:25 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:11:14 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:10 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:55 /usr/libexec/strongswan/charon --use-syslog 3463 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3] 3861 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:1] 6834 0.0 0.0 ? Rs 20:59:35 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:51 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:28 nginx: worker process 30877 0.0 0.0 ? S 20:27:00 00:00:00 [kworker/0:2] 31379 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no frameTooShorts errors | 0.21 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEosRR2] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show daemon| on kg-topology-CloudEosRR2 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEosRR2| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1714) Uptime: 39 days, 19:40:57 (Start time: Thu Aug 13 01:18:44 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest protocol statuses are up | 0.17 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:400 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 9 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'actual_output': 'up', 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEosRR2] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEosRR2| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:400 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show daemon| on kg-topology-CloudEosRR2 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1714) Uptime: 39 days, 19:40:57 (Start time: Thu Aug 13 01:18:44 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no frameLongShorts errors | 0.28 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest link statuses are up | 0.17 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:400 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'actual_output': 'connected', 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no fcsErrors errors | 0.17 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest physical state is link up | 0.17 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEosRR2 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:400 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:447 Verify if kg-topology-CloudEosRR2 DUT is a VEOS instance INFO root:tests_tools.py:451 kg-topology-CloudEosRR2 is a VEOS instance so returning True INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 3 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'test_suite': 'test_interface.py', 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'test_result': True, 'output_msg': None, 'actual_output': None, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no alignmentErrors errors | 0.17 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEosRR2] | Verify DNS is running by performing pings and verifying name resolution | 1.03 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for google.com On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.9.46) 72(100) bytes of data. 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 17.031/17.038/17.051/0.007 ms, pipe 2, ipg/ewma 15.299/17.037 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.1.67) 72(100) bytes of data. 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=1 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=2 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=3 ttl=39 time=10.6 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=4 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=5 ttl=39 time=10.5 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 43ms rtt min/avg/max/mdev = 10.581/10.592/10.600/0.130 ms, pipe 2, ipg/ewma 10.765/10.595 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=23.0 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 66ms rtt min/avg/max/mdev = 23.029/23.053/23.083/0.019 ms, pipe 3, ipg/ewma 16.555/23.046 ms | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest does not have input errors | 0.21 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no alignmentErrors errors | 0.25 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEosRR2] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show tacacs| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:424 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:430 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEosRR2| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest does not have output errors | 0.23 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 150804 Last hit: 0 seconds ago Bytes in: 22978837 Bytes out: 367365695 Requests: 142873 Commands: 285746 Duration: 11399.744 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 142873 22978837 367365695 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEosRR2] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show tacacs| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:424 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:430 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEosRR2| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no outDiscards | 0.29 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 8 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 5 minute CPU load average is |1.22%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.22| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:42, 0 users, load average: 1.16, 1.21, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 40-17:37:14 Sfe 1725 0.4 2.3 ? Sl Aug 13 04:24:40 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 02:04:28 ConfigAgent 29276 0.2 0.7 ? SNl Sep 19 00:09:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1233 0.1 0.9 ? S Aug 13 01:49:27 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:44:04 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:31 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:32 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:38 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:21 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:10 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:35 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:13:15 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:55:38 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:50 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:33 Fru 1585 0.0 1.8 ? S Aug 13 00:01:22 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:45 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:04:19 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:03:00 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:43 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:20:24 Lag 1754 0.0 1.7 ? S Aug 13 00:39:36 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:59 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:04:03 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:09:35 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:32:45 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:43 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:47:33 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:11:24 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:41 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:48 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:27:38 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:06:23 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:30 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:29 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:23 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:06:12 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:54 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:45 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:19 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:17 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:45 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:41 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:41 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:05:01 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:43 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:02:08 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:10:18 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:37 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:52 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:12 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:20:03 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:24 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:44 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:24 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:10:45 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:07 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:08:34 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:24 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:50 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:14 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3791 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:2] 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 4186 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3] 4558 0.0 0.0 ? S 20:54:01 00:00:00 [kworker/0:1] 7057 0.0 0.0 ? Ss 20:58:39 00:00:00 sshd: [accepted] 7491 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:20 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:02:17 nginx: worker process 29257 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 30730 0.0 0.4 ? Sl Aug 17 00:17:02 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:14:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEosRR2 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEosRR2] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| |ec2-user| username is |configured| On router |kg-topology-CloudEosRR2| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show running-config section username| on kg-topology-CloudEosRR2 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEosRR2| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEosRR2| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no inDiscards | 0.30 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEOSEdge1] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge1 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEOSEdge1| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1725) Uptime: 39 days, 19:41:05 (Start time: Thu Aug 13 01:18:37 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEosRR2] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show zerotouch| on kg-topology-CloudEosRR2 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEosRR2| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEOSEdge1] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEOSEdge1| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:400 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge1 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1725) Uptime: 39 days, 19:41:05 (Start time: Thu Aug 13 01:18:37 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEosRR2] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEosRR2 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEosRR2| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7293399040 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEOSEdge1] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEOSEdge1] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show users detail| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEOSEdge1| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 147988 kgrozis command-api E 0:00:14 local | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_rx_is_enabled_on_[kg-topology-CloudEosRR2] | Verify LLDP receive is enabled on interesting interfaces | 0.24 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:400 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show lldp| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_lldp_rx_is_enabled_on_ with parameters {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api https server is running | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142380 Last hit: 0 seconds ago Bytes in: 21705266 Bytes out: 381032457 Requests: 134952 Commands: 269904 Duration: 11350.893 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134952 21705266 381032457 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEOSEdge1] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142380 Last hit: 0 seconds ago Bytes in: 21705266 Bytes out: 381032457 Requests: 134952 Commands: 269904 Duration: 11350.893 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134952 21705266 381032457 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_tx_is_enabled_on_[kg-topology-CloudEosRR2] | Verify LLDP transmit is enabled on interesting interfaces | 0.25 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True| TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|. GIVEN LLDP transmit state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_lldp_tx_is_enabled_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_lldp_tx_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:400 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show lldp| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_tx_is_enabled_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_if_lldp_tx_is_enabled_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_if_lldp_tx_is_enabled_on_ with parameters {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEOSEdge1] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142380 Last hit: 0 seconds ago Bytes in: 21705266 Bytes out: 381032457 Requests: 134952 Commands: 269904 Duration: 11350.893 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134952 21705266 381032457 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEOSEdge1] | Verify DNS is running by performing pings and verifying name resolution | 1.28 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for google.com On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (216.58.192.142) 72(100) bytes of data. 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord36s01-in-f14.1e100.net (216.58.192.142): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 64ms rtt min/avg/max/mdev = 17.514/17.553/17.681/0.064 ms, pipe 2, ipg/ewma 16.057/17.615 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.1.67) 72(100) bytes of data. 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=1 ttl=39 time=11.4 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=2 ttl=39 time=11.2 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=3 ttl=39 time=11.2 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=4 ttl=39 time=11.2 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=5 ttl=39 time=11.2 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 45ms rtt min/avg/max/mdev = 11.234/11.278/11.430/0.154 ms, pipe 2, ipg/ewma 11.363/11.352 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=23.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=23.4 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 68ms rtt min/avg/max/mdev = 23.430/23.510/23.709/0.170 ms, pipe 3, ipg/ewma 17.073/23.607 ms | ||||
| Passed | kg-topology-CloudEosRR2 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEosRR2] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| message |critical| NOT found in local log On router |kg-topology-CloudEosRR2| message |warning| NOT found in local log On router |kg-topology-CloudEosRR2| message |ECC| NOT found in local log On router |kg-topology-CloudEosRR2| message |servers errors| NOT found in local log On router |kg-topology-CloudEosRR2| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show logging| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show logging| on kg-topology-CloudEosRR2 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:37 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:51 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:07 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142380 Last hit: 0 seconds ago Bytes in: 21705266 Bytes out: 381032457 Requests: 134952 Commands: 269904 Duration: 11350.893 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134952 21705266 381032457 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEOSEdge1] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| awslogs.swix extension is |installed| On router |kg-topology-CloudEOSEdge1| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge1 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142380 Last hit: 0 seconds ago Bytes in: 21705266 Bytes out: 381032457 Requests: 134952 Commands: 269904 Duration: 11350.893 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134952 21705266 381032457 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEosRR2] | Verify memory is not exceeding high utlization | 0.26 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ - On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%| TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|. GIVEN memory utilization is less than |70|. WHEN memory utilization is |37.96644368092234|. THEN test case result is |True|. OUTPUT of |show version| is: Arista vEOS Hardware version: Serial number: 93F97AD3A1044C742872BA1CFA684D63 System MAC address: 0654.9b7c.b00f Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 4 days, 19 hours and 41 minutes Total memory: 7818736 kB Free memory: 2953212 kB -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_memory_utilization_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show version| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show version| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:550 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_memory.py exists in results file at index 3 INFO root:tests_tools.py:565 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:570 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEosRR2 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'result': True, 'test_suite': 'test_memory.py', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'actual_output': 37.96644368092234, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEOSEdge1] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| awslogs.swix extension error is |False| On router |kg-topology-CloudEOSEdge1| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge1 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 1 second CPU load average is |1.16%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.16| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:42, 0 users, load average: 1.16, 1.21, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 40-17:37:15 Sfe 7495 1.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 1725 0.4 2.3 ? Sl Aug 13 04:24:40 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 02:04:28 ConfigAgent 29276 0.2 0.7 ? SNl Sep 19 00:09:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1233 0.1 0.9 ? S Aug 13 01:49:27 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:44:04 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:31 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:32 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:38 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:21 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:10 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:35 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:13:15 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:55:38 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:50 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:33 Fru 1585 0.0 1.8 ? S Aug 13 00:01:22 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:45 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:04:19 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:03:00 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:43 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:20:24 Lag 1754 0.0 1.7 ? S Aug 13 00:39:36 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:59 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:04:03 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:09:35 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:32:45 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:43 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:47:33 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:11:24 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:41 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:48 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:27:38 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:06:23 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:30 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:29 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:23 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:06:12 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:54 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:45 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:19 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:17 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:45 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:41 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:41 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:05:01 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:43 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:02:08 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:10:18 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:37 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:52 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:12 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:20:03 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:24 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:44 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:24 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:10:45 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:07 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:08:34 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:24 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:50 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:14 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3791 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:2] 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 4186 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3] 4558 0.0 0.0 ? S 20:54:01 00:00:00 [kworker/0:1] 7057 0.0 0.0 ? Ss 20:58:39 00:00:00 sshd: [accepted] 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:20 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:02:17 nginx: worker process 29257 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 30730 0.0 0.4 ? Sl Aug 17 00:17:02 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:14:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEOSEdge1] | Verify hostname is set on device is correct | 0.28 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1| TEST is hostname correct. GIVEN hostname |kg-topology-CloudEOSEdge1|. WHEN hostname is |kg-topology-CloudEOSEdge1|. THEN test case result is |True|. OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEOSEdge1 FQDN: kg-topology-CloudEOSEdge1 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'} INFO root:tests_tools.py:400 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show hostname| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_host.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_host.py exists in results file at index 0 INFO root:tests_tools.py:565 Find Index for test case: test_if_hostname_is_correcet_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_hostname_is_correcet_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_hostname_is_correcet_on_ with parameters {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'test_suite': 'test_host.py', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'actual_output': 'kg-topology-CloudEOSEdge1', 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEosRR2] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show ntp status| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 18 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 1 minute CPU load average is |1.21%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.21| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:42, 0 users, load average: 1.16, 1.21, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 40-17:37:15 Sfe 7495 1.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 1725 0.4 2.3 ? Sl Aug 13 04:24:40 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 02:04:28 ConfigAgent 29276 0.2 0.7 ? SNl Sep 19 00:09:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1233 0.1 0.9 ? S Aug 13 01:49:27 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:44:04 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:31 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:32 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:38 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:21 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:10 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:35 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:13:15 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:55:38 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:50 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:33 Fru 1585 0.0 1.8 ? S Aug 13 00:01:22 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:45 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:04:19 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:03:00 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:43 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:20:24 Lag 1754 0.0 1.7 ? S Aug 13 00:39:36 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:59 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:04:03 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:09:35 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:32:45 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:43 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:47:33 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:11:24 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:41 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:48 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:27:38 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:06:23 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:30 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:29 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:23 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:06:12 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:54 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:45 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:19 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:17 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:45 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:41 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:41 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:05:01 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:43 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:02:08 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:10:18 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:37 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:52 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:12 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:20:03 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:24 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:44 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:24 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:10:45 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:07 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:08:34 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:24 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:50 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:14 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3791 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:2] 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 4186 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3] 4558 0.0 0.0 ? S 20:54:01 00:00:00 [kworker/0:1] 7057 0.0 0.0 ? Ss 20:58:39 00:00:00 sshd: [accepted] 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:20 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:02:17 nginx: worker process 29257 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 30730 0.0 0.4 ? Sl Aug 17 00:17:02 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:14:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEosRR2] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show ntp associations| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 253 1024 377 0.106 0.088 0.332 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEosRR2] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.45, 1.28, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 40-18:15:06 Sfe 1714 0.4 1.9 ? Sl Aug 13 03:51:48 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 31419 0.2 0.7 ? SNl Sep 19 00:08:15 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1255 0.1 0.9 ? S Aug 13 01:48:16 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:53:12 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:35 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:34 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:37 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:18 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:26 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:12:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:58 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:42:20 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:51 StageMgr 1570 0.0 1.4 ? S Aug 13 00:02:03 Fru 1571 0.0 1.8 ? S Aug 13 00:00:46 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:10:46 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:04:11 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:31 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:05:01 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:20:00 Lag 1729 0.0 1.7 ? S Aug 13 00:40:17 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:22 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:23 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:48 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:30:41 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:45 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:45:55 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:43 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:11:34 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:04:01 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:22:47 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:34 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:34 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:31 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:52 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:05:18 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:04:03 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:03:07 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:33 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:21 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:02:01 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:43 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:44 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:39 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:44 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:04:10 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:33 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:09:09 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:39 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:28 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:37 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:12:45 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:40 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:47 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:25 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:11:14 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:10 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:55 /usr/libexec/strongswan/charon --use-syslog 3463 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3] 3861 0.0 0.0 ? S 20:54:00 00:00:00 [kworker/0:1] 6840 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:51 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:28 nginx: worker process 30877 0.0 0.0 ? S 20:27:00 00:00:00 [kworker/0:2] 31379 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest protocol statuses are up | 0.50 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 - On interface |Ethernet2|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet2| link prootocol statuses on |kg-topology-CloudEOSEdge1|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:400 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 9 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'actual_output': 'up', 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 9 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEOSEdge1] | Verify filesystem is correct and expected files are present | 0.69 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEOSEdge1|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEOSEdge1|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968575, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.7245517, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018197, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.42727, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.1862884, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 41476.94924790425, 'inPktsRate': 35.40915736637788, 'outBitsRate': 28134.74316884608, 'updateInterval': 300.0, 'outPktsRate': 32.84370188402185}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 151031136, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.428306, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 30660889789, 'outDiscards': 0, 'outOctets': 17735462816, 'inUcastPkts': 170343351, 'inTotalPkts': 170343351, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.5901651, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.2396886, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 55093.37547866266, 'inPktsRate': 50.64691553402856, 'outBitsRate': 118818.73876688322, 'updateInterval': 300.0, 'outPktsRate': 55.78448176775211}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 179673215, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.429405, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 17776325222, 'outDiscards': 0, 'outOctets': 38396533157, 'inUcastPkts': 151211386, 'inTotalPkts': 151211386, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663585, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778924, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3440521.98, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2766304, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2766304 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3519434, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1725': {'totalActiveTime': 15880, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 7468, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '29276': {'totalActiveTime': 558, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1600478107.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6567, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 6244, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 331, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 53, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 98, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 201, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 70, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 95, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 795, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 171, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3338, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 50, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 153, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 82, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 585, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 259, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 180, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 343, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1224, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2376, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 299, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 243, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 575, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1965, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2853, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 684, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 101, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 288, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1658, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 383, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 150, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 269, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 263, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 372, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 294, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 225, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 139, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 77, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 165, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 461, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 301, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 128, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 618, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 157, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 292, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 132, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1203, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 645, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 67, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 514, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 264, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 290, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 74, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3791': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720921.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '4186': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '4558': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721641.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '7057': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721919.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '7475': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 140, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 137, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '29257': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600478106.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 1022, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 841, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440522.52, 'loadAvg': [1.16, 1.21, 1.22], 'users': 0, 'currentTime': 1600721976.81906}}, 'text': " 20:59:37 up 39 days, 19:42, 0 users, load average: 1.16, 1.21, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 40-17:37:14 Sfe\n 1725 0.4 2.3 ? Sl Aug 13 04:24:40 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 02:04:28 ConfigAgent\n29276 0.2 0.7 ? SNl Sep 19 00:09:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1233 0.1 0.9 ? S Aug 13 01:49:27 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:44:04 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:31 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:32 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:38 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:21 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:10 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:35 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:13:15 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:55:38 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:50 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:33 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:22 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:45 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:04:19 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:03:00 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:43 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:20:24 Lag\n 1754 0.0 1.7 ? S Aug 13 00:39:36 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:59 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:04:03 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:09:35 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:32:45 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:43 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:47:33 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:11:24 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:41 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:48 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:27:38 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:06:23 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:30 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:29 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:23 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:06:12 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:54 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:45 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:19 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:17 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:45 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:41 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:41 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:05:01 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:43 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:02:08 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:10:18 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:37 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:52 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:12 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:20:03 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:24 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:44 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:24 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:10:45 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:07 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:08:34 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:24 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:50 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:14 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3791 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:2]\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 4186 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3]\n 4558 0.0 0.0 ? S 20:54:01 00:00:00 [kworker/0:1]\n 7057 0.0 0.0 ? Ss 20:58:39 00:00:00 sshd: [accepted] \n 7491 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:20 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:02:17 nginx: worker process \n29257 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n30730 0.0 0.4 ? Sl Aug 17 00:17:02 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:14:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291187200 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291187200 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 146175, 'authorizationAllowed': 2959, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 395, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 146180\n Failed: 7\n Service unavailable: 395\n\nAuthorization\n Allowed: 2959\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'147988': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n147988 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 23, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 23 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.106, 'jitter': 0.341, 'lastReceived': 1600721511.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.018, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 470 1024 377 0.106 0.018 0.341\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.191204, 'pid': 1725, 'enabled': True, 'uptime': 3440464.88, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 39 days, 19:41:05 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 134949, 'bytesOut': 381030803, 'lastHitTime': 1600721983.5745764, 'bytesIn': 21704775}}, 'bytesOut': 381030803, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 142377, 'vrf': 'default', 'lastHitTime': 1600721983.574546, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 11350.858700954239, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 134949, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 21704775, 'commandCount': 269898, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 142381\nLast hit: 0 seconds ago\nBytes in: 21705431\nBytes out: 381033721\nRequests: 134953\nCommands: 269906\nDuration: 11350.916 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 134953 21705431 381033721 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968575, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.7245517, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018197, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.42727, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.1862884, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 41476.94924790425, 'inPktsRate': 35.40915736637788, 'outBitsRate': 28134.74316884608, 'updateInterval': 300.0, 'outPktsRate': 32.84370188402185}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 151031136, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.428306, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 30660889789, 'outDiscards': 0, 'outOctets': 17735462816, 'inUcastPkts': 170343351, 'inTotalPkts': 170343351, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.5901651, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.2396886, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 55093.37547866266, 'inPktsRate': 50.64691553402856, 'outBitsRate': 118818.73876688322, 'updateInterval': 300.0, 'outPktsRate': 55.78448176775211}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 179673215, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.429405, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 17776325222, 'outDiscards': 0, 'outOctets': 38396533157, 'inUcastPkts': 151211386, 'inTotalPkts': 151211386, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663585, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778924, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3440521.98, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2766304, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2766304 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3519434, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1725': {'totalActiveTime': 15880, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 7468, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '29276': {'totalActiveTime': 558, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1600478107.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6567, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 6244, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 331, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 53, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 98, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 201, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 70, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 95, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 795, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 171, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3338, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 50, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 153, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 82, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 585, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 259, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 180, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 343, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1224, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2376, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 299, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 243, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 575, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1965, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2853, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 684, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 101, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 288, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1658, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 383, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 150, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 269, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 263, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 372, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 294, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 225, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 139, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 77, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 165, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 461, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 301, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 128, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 618, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 157, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 292, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 132, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1203, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 645, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 67, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 514, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 264, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 290, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 74, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3791': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720921.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '4186': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '4558': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721641.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '7057': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721919.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '7475': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 140, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 137, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '29257': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600478106.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 1022, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 841, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440522.52, 'loadAvg': [1.16, 1.21, 1.22], 'users': 0, 'currentTime': 1600721976.81906}}, 'text': " 20:59:37 up 39 days, 19:42, 0 users, load average: 1.16, 1.21, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 40-17:37:14 Sfe\n 1725 0.4 2.3 ? Sl Aug 13 04:24:40 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 02:04:28 ConfigAgent\n29276 0.2 0.7 ? SNl Sep 19 00:09:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1233 0.1 0.9 ? S Aug 13 01:49:27 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:44:04 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:31 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:32 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:38 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:21 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:10 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:35 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:13:15 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:55:38 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:50 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:33 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:22 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:45 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:04:19 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:03:00 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:43 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:20:24 Lag\n 1754 0.0 1.7 ? S Aug 13 00:39:36 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:59 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:04:03 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:09:35 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:32:45 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:43 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:47:33 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:11:24 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:41 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:48 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:27:38 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:06:23 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:30 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:29 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:23 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:06:12 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:54 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:45 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:19 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:17 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:45 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:41 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:41 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:05:01 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:43 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:02:08 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:10:18 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:37 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:52 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:12 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:20:03 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:24 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:44 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:24 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:10:45 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:07 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:08:34 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:24 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:50 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:14 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3791 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:2]\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 4186 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3]\n 4558 0.0 0.0 ? S 20:54:01 00:00:00 [kworker/0:1]\n 7057 0.0 0.0 ? Ss 20:58:39 00:00:00 sshd: [accepted] \n 7491 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:20 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:02:17 nginx: worker process \n29257 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n30730 0.0 0.4 ? Sl Aug 17 00:17:02 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:14:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291187200 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291187200 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 146175, 'authorizationAllowed': 2959, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 395, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 146180\n Failed: 7\n Service unavailable: 395\n\nAuthorization\n Allowed: 2959\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'147988': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n147988 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 23, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 23 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.106, 'jitter': 0.341, 'lastReceived': 1600721511.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.018, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 470 1024 377 0.106 0.018 0.341\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.191204, 'pid': 1725, 'enabled': True, 'uptime': 3440464.88, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 39 days, 19:41:05 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 134949, 'bytesOut': 381030803, 'lastHitTime': 1600721983.5745764, 'bytesIn': 21704775}}, 'bytesOut': 381030803, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 142377, 'vrf': 'default', 'lastHitTime': 1600721983.574546, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 11350.858700954239, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 134949, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 21704775, 'commandCount': 269898, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 142381\nLast hit: 0 seconds ago\nBytes in: 21705431\nBytes out: 381033721\nRequests: 134953\nCommands: 269906\nDuration: 11350.916 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 134953 21705431 381033721 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968575, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.7245517, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018197, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.42727, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.1862884, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 41476.94924790425, 'inPktsRate': 35.40915736637788, 'outBitsRate': 28134.74316884608, 'updateInterval': 300.0, 'outPktsRate': 32.84370188402185}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 151031136, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.428306, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 30660889789, 'outDiscards': 0, 'outOctets': 17735462816, 'inUcastPkts': 170343351, 'inTotalPkts': 170343351, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.5901651, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.2396886, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 55093.37547866266, 'inPktsRate': 50.64691553402856, 'outBitsRate': 118818.73876688322, 'updateInterval': 300.0, 'outPktsRate': 55.78448176775211}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 179673215, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.429405, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 17776325222, 'outDiscards': 0, 'outOctets': 38396533157, 'inUcastPkts': 151211386, 'inTotalPkts': 151211386, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663585, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778924, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3440521.98, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2766304, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2766304 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3519434, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1725': {'totalActiveTime': 15880, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 7468, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '29276': {'totalActiveTime': 558, 'memPct': 0.7, 'cpuPct': 0.2, 'startTime': 1600478107.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6567, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 6244, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 331, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 53, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 98, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 201, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 70, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 95, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 25, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 795, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 171, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3338, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 50, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 153, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 82, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 585, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 259, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 180, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 343, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1224, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2376, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 299, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 243, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 575, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1965, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2853, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 684, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 101, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 288, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1658, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 383, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 150, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 269, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 263, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 372, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 294, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 225, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 139, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 77, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 165, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 461, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 301, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 128, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 618, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 157, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 292, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 132, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1203, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 44, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 645, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 67, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 514, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 264, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 290, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 74, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3791': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720921.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '4186': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721281.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '4558': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721641.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '7057': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721919.0, 'cmd': 'sshd: [accepted] ', 'state': 'Ss', 'ttyName': '?'}, '7475': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 140, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 137, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '29257': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600478106.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 1022, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 841, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440522.52, 'loadAvg': [1.16, 1.21, 1.22], 'users': 0, 'currentTime': 1600721976.81906}}, 'text': " 20:59:37 up 39 days, 19:42, 0 users, load average: 1.16, 1.21, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 40-17:37:14 Sfe\n 1725 0.4 2.3 ? Sl Aug 13 04:24:40 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 02:04:28 ConfigAgent\n29276 0.2 0.7 ? SNl Sep 19 00:09:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1233 0.1 0.9 ? S Aug 13 01:49:27 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:44:04 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:31 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:32 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:38 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:21 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:10 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:35 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:13:15 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:55:38 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:50 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:33 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:22 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:45 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:04:19 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:03:00 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:43 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:20:24 Lag\n 1754 0.0 1.7 ? S Aug 13 00:39:36 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:59 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:04:03 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:09:35 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:32:45 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:43 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:47:33 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:11:24 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:41 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:48 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:27:38 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:06:23 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:30 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:29 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:23 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:06:12 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:54 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:45 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:19 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:17 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:45 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:41 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:41 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:05:01 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:43 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:02:08 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:10:18 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:37 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:52 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:12 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:20:03 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:24 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:44 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:24 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:10:45 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:07 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:08:34 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:24 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:50 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:14 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3791 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:2]\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 4186 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3]\n 4558 0.0 0.0 ? S 20:54:01 00:00:00 [kworker/0:1]\n 7057 0.0 0.0 ? Ss 20:58:39 00:00:00 sshd: [accepted] \n 7491 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:20 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:02:17 nginx: worker process \n29257 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n30730 0.0 0.4 ? Sl Aug 17 00:17:02 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:14:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291187200 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291187200 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 146175, 'authorizationAllowed': 2959, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 395, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 146180\n Failed: 7\n Service unavailable: 395\n\nAuthorization\n Allowed: 2959\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'147988': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n147988 kgrozis command-api E 0:00:14 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 23, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 23 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.106, 'jitter': 0.341, 'lastReceived': 1600721511.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.018, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 470 1024 377 0.106 0.018 0.341\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.191204, 'pid': 1725, 'enabled': True, 'uptime': 3440464.88, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 39 days, 19:41:05 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 134949, 'bytesOut': 381030803, 'lastHitTime': 1600721983.5745764, 'bytesIn': 21704775}}, 'bytesOut': 381030803, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 142377, 'vrf': 'default', 'lastHitTime': 1600721983.574546, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 11350.858700954239, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 134949, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 21704775, 'commandCount': 269898, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 142381\nLast hit: 0 seconds ago\nBytes in: 21705431\nBytes out: 381033721\nRequests: 134953\nCommands: 269906\nDuration: 11350.916 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 134953 21705431 381033721 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEOSEdge1] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:424 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:430 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEOSEdge1| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEOSEdge1] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| |ec2-user| username is |configured| On router |kg-topology-CloudEOSEdge1| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show running-config section username| on kg-topology-CloudEOSEdge1 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEOSEdge1| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEOSEdge1| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_tx_is_enabled_on_[kg-topology-CloudEOSEdge1] | Verify LLDP transmit is enabled on interesting interfaces | 0.78 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True| TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|. GIVEN LLDP transmit state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes - On interface |Ethernet2|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True| TEST if interface |Ethernet2| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|. GIVEN LLDP transmit state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_lldp_tx_is_enabled_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_lldp_tx_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:400 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show lldp| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_tx_is_enabled_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_lldp_tx_is_enabled_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_lldp_tx_is_enabled_on_ with parameters {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_tx_is_enabled_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_lldp_tx_is_enabled_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEOSEdge1] | Verify ztp is disabled | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show zerotouch| on kg-topology-CloudEOSEdge1 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEOSEdge1| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEOSEdge1] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| message |critical| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |warning| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |ECC| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |servers errors| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show logging| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show logging| on kg-topology-CloudEOSEdge1 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:07 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:57 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:05 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:04 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:33 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:41 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEOSEdge1] | Verify zerotoucn-config file is on flash | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEOSEdge1 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEOSEdge1| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7291187200 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEOSEdge2] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no alignmentErrors errors | 0.70 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet2| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEOSEdge2] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show users detail| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEOSEdge2| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 147612 kgrozis command-api E 0:00:14 local | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest link statuses are up | 1.32 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 - On interface |Ethernet2|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet2|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet2| link status on |kg-topology-CloudEOSEdge1|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:400 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'actual_output': 'connected', 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no alignmentErrors errors | 0.83 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet2| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEOSEdge1] | Verify memory is not exceeding high utlization | 1.43 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ - On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%| TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|. GIVEN memory utilization is less than |70|. WHEN memory utilization is |35.38045024157358|. THEN test case result is |True|. OUTPUT of |show version| is: Arista vEOS Hardware version: Serial number: DB3968957436BF7623C810C9F13FC97E System MAC address: 029e.d20a.bbfc Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 4 days, 19 hours and 42 minutes Total memory: 7818736 kB Free memory: 2751468 kB -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_memory_utilization_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show version| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show version| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_memory.py exists in results file at index 3 INFO root:tests_tools.py:565 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'result': True, 'test_suite': 'test_memory.py', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'actual_output': 35.38045024157358, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEOSEdge1] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show ntp status| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 23 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest physical state is link up | 1.04 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEOSEdge1 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:400 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:447 Verify if kg-topology-CloudEOSEdge1 DUT is a VEOS instance INFO root:tests_tools.py:451 kg-topology-CloudEOSEdge1 is a VEOS instance so returning True INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 3 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'test_suite': 'test_interface.py', 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'test_result': True, 'output_msg': None, 'actual_output': None, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEOSEdge1] | Verify ntp peers are correct | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show ntp associations| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 470 1024 377 0.106 0.018 0.341 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEOSEdge1] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:42, 0 users, load average: 1.16, 1.21, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 40-17:37:15 Sfe 7495 1.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 1725 0.4 2.3 ? Sl Aug 13 04:24:40 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 02:04:28 ConfigAgent 29276 0.2 0.7 ? SNl Sep 19 00:09:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1233 0.1 0.9 ? S Aug 13 01:49:27 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:44:04 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:31 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:32 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:53 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:38 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:21 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:10 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:35 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:25 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:13:15 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:22 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:55:38 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:50 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:33 Fru 1585 0.0 1.8 ? S Aug 13 00:01:22 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:45 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:04:19 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:03:00 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:43 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:20:24 Lag 1754 0.0 1.7 ? S Aug 13 00:39:36 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:59 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:04:03 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:09:35 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:32:45 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:43 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:47:33 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:11:24 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:41 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:48 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:27:38 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:06:23 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:30 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:29 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:23 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:06:12 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:54 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:45 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:19 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:17 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:45 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:41 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:41 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:44 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:05:01 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:43 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:02:08 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:10:18 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:37 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:52 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:12 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:20:03 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:24 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:44 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:24 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:10:45 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:07 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:08:34 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:24 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:50 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:14 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3791 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:2] 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 4186 0.0 0.0 ? S 20:48:01 00:00:00 [kworker/0:3] 4558 0.0 0.0 ? S 20:54:01 00:00:00 [kworker/0:1] 7057 0.0 0.0 ? Ss 20:58:39 00:00:00 sshd: [accepted] 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:20 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:02:17 nginx: worker process 29257 0.0 0.0 ? S Sep 19 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 30730 0.0 0.4 ? Sl Aug 17 00:17:02 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:14:01 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no outDiscards | 1.20 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet2| counters has outbound discards on |kg-topology-CloudEOSEdge1| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 8 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 8 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEOSEdge1] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:424 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:430 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEOSEdge1| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:400 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest does not have input errors | 1.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet2| counters have input errors on |kg-topology-CloudEOSEdge1|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142301 Last hit: 0 seconds ago Bytes in: 21692588 Bytes out: 378171318 Requests: 134875 Commands: 269750 Duration: 14697.282 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134875 21692588 378171318 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142307 Last hit: 0 seconds ago Bytes in: 21693491 Bytes out: 378174323 Requests: 134880 Commands: 269760 Duration: 14697.472 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134880 21693491 378174323 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEOSEdge2] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142301 Last hit: 0 seconds ago Bytes in: 21692588 Bytes out: 378171318 Requests: 134875 Commands: 269750 Duration: 14697.282 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134875 21692588 378171318 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142307 Last hit: 0 seconds ago Bytes in: 21693491 Bytes out: 378174323 Requests: 134880 Commands: 269760 Duration: 14697.472 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134880 21693491 378174323 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no inDiscards | 1.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet2| counters has inbound discards on |kg-topology-CloudEOSEdge1|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEOSEdge2] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:400 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 142301 Last hit: 0 seconds ago Bytes in: 21692588 Bytes out: 378171318 Requests: 134875 Commands: 269750 Duration: 14697.282 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 134875 21692588 378171318 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 1 second CPU load average is |1.39%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.39| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.39, 1.35, 1.30 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 40-09:33:17 Sfe 1675 2.5 2.1 ? Sl Aug 13 1-00:38:17 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 6572 0.6 0.7 ? SNl Sep 18 00:25:17 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1476 0.3 2.6 ? S Aug 13 02:58:44 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:36:34 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:21:47 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 02:02:08 IpRib 1703 0.1 1.7 ? S Aug 13 01:13:42 SuperServer 1719 0.1 1.2 ? S Aug 13 01:00:55 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:53:30 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:15:33 Bgp 3369 0.1 1.4 ? S Aug 13 01:50:48 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:08:31 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:21 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:35 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:23 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:04:03 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:06:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:23 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:13:32 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:03:07 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:50 StageMgr 1521 0.0 1.4 ? S Aug 13 00:24:04 Fru 1524 0.0 1.8 ? S Aug 13 00:12:09 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:32:49 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:24:19 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:26:31 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:25:55 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:48:19 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:24:35 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:29:03 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:32:04 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:53 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:11:13 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:19:46 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:24:28 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:54:14 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:39:28 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:08:03 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:24:23 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:24:37 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:36:35 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:24:31 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:27:37 Qos 1856 0.0 1.1 ? S Aug 13 00:08:04 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:08:06 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:24:23 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:51 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:52 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:31:25 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:52 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:53 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:24:43 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:08:04 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:08:15 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:24:39 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:08:06 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:38 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:54 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:18 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2684 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:50:59 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:03:09 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:54:37 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:25:46 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:27:09 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:04:04 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 6552 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 26255 0.0 0.0 ? S 20:21:01 00:00:00 [kworker/0:0] 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:07:35 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:03:14 nginx: worker process 30935 0.0 0.0 ? S 20:38:00 00:00:00 [kworker/0:4] 31732 0.0 0.0 ? S 20:50:01 00:00:00 [kworker/0:1] 32135 0.0 0.0 ? S 20:56:00 00:00:00 [kworker/0:2] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 5 minute CPU load average is |1.3%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.3| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.39, 1.35, 1.30 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 40-09:33:17 Sfe 1675 2.5 2.1 ? Sl Aug 13 1-00:38:18 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 6572 0.6 0.7 ? SNl Sep 18 00:25:17 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1476 0.3 2.6 ? S Aug 13 02:58:44 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:36:35 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:21:47 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 02:02:08 IpRib 1703 0.1 1.7 ? S Aug 13 01:13:42 SuperServer 1719 0.1 1.2 ? S Aug 13 01:00:55 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:53:30 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:15:33 Bgp 3369 0.1 1.4 ? S Aug 13 01:50:48 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:08:31 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:21 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:35 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:23 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:04:03 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:06:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:23 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:13:32 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:03:07 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:50 StageMgr 1521 0.0 1.4 ? S Aug 13 00:24:04 Fru 1524 0.0 1.8 ? S Aug 13 00:12:09 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:32:49 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:24:19 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:26:31 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:25:55 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:48:19 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:24:35 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:29:03 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:32:04 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:53 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:11:13 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:19:46 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:24:28 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:54:14 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:39:28 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:08:03 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:24:23 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:24:37 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:36:35 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:24:31 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:27:37 Qos 1856 0.0 1.1 ? S Aug 13 00:08:04 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:08:06 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:24:23 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:51 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:52 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:31:25 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:52 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:53 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:24:43 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:08:04 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:08:15 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:24:39 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:08:06 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:38 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:54 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:18 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2692 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 2694 0.0 0.0 ? Rs 20:59:36 00:00:00 uptime 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:50:59 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:03:09 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:54:37 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:25:46 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:27:09 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:04:04 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 6552 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 26255 0.0 0.0 ? S 20:21:01 00:00:00 [kworker/0:0] 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:07:35 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:03:14 nginx: worker process 30935 0.0 0.0 ? S 20:38:00 00:00:00 [kworker/0:4] 31732 0.0 0.0 ? S 20:50:01 00:00:00 [kworker/0:1] 32135 0.0 0.0 ? S 20:56:00 00:00:00 [kworker/0:2] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 1 minute CPU load average is |1.35%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.35| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.39, 1.35, 1.30 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 40-09:33:17 Sfe 1675 2.5 2.1 ? Sl Aug 13 1-00:38:17 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 6572 0.6 0.7 ? SNl Sep 18 00:25:17 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1476 0.3 2.6 ? S Aug 13 02:58:44 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:36:34 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:21:47 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 02:02:08 IpRib 1703 0.1 1.7 ? S Aug 13 01:13:42 SuperServer 1719 0.1 1.2 ? S Aug 13 01:00:55 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:53:30 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:15:33 Bgp 3369 0.1 1.4 ? S Aug 13 01:50:48 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:08:31 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:21 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:35 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:23 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:04:03 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:06:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:23 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:13:32 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:03:07 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:50 StageMgr 1521 0.0 1.4 ? S Aug 13 00:24:04 Fru 1524 0.0 1.8 ? S Aug 13 00:12:09 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:32:49 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:24:19 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:26:31 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:25:55 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:48:19 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:24:35 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:29:03 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:32:04 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:53 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:11:13 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:19:46 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:24:28 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:54:14 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:39:28 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:08:03 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:24:23 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:24:37 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:36:35 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:24:31 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:27:37 Qos 1856 0.0 1.1 ? S Aug 13 00:08:04 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:08:06 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:24:23 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:51 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:52 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:31:25 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:52 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:53 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:24:43 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:08:04 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:08:15 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:24:39 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:08:06 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:38 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:54 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:18 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2684 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:50:59 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:03:09 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:54:37 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:25:46 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:27:09 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:04:04 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 6552 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 26255 0.0 0.0 ? S 20:21:01 00:00:00 [kworker/0:0] 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:07:35 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:03:14 nginx: worker process 30935 0.0 0.0 ? S 20:38:00 00:00:00 [kworker/0:4] 31732 0.0 0.0 ? S 20:50:01 00:00:00 [kworker/0:1] 32135 0.0 0.0 ? S 20:56:00 00:00:00 [kworker/0:2] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest does not have output errors | 1.14 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet2| has output errors on |kg-topology-CloudEOSEdge1|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEOSEdge2] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge2 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEOSEdge2| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1675) Uptime: 39 days, 19:40:49 (Start time: Thu Aug 13 01:18:53 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEOSEdge2] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEOSEdge2| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:400 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge2 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1675) Uptime: 39 days, 19:40:49 (Start time: Thu Aug 13 01:18:53 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEOSEdge2] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| awslogs.swix extension is |installed| On router |kg-topology-CloudEOSEdge2| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge2 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no frameTooShorts errors | 0.77 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet2| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEOSEdge2] | Verify DNS is running by performing pings and verifying name resolution | 1.09 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for google.com On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.4.238) 72(100) bytes of data. 76 bytes from ord30s31-in-f14.1e100.net (172.217.4.238): icmp_seq=1 ttl=101 (truncated) 76 bytes from ord30s31-in-f14.1e100.net (172.217.4.238): icmp_seq=2 ttl=101 (truncated) 76 bytes from ord30s31-in-f14.1e100.net (172.217.4.238): icmp_seq=3 ttl=101 (truncated) 76 bytes from ord30s31-in-f14.1e100.net (172.217.4.238): icmp_seq=4 ttl=101 (truncated) 76 bytes from ord30s31-in-f14.1e100.net (172.217.4.238): icmp_seq=5 ttl=101 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 65ms rtt min/avg/max/mdev = 16.942/17.235/18.351/0.581 ms, pipe 2, ipg/ewma 16.383/17.775 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.1.67) 72(100) bytes of data. 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=1 ttl=39 time=11.9 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=2 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=3 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=4 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=5 ttl=39 time=10.5 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 47ms rtt min/avg/max/mdev = 10.532/10.842/11.984/0.571 ms, pipe 2, ipg/ewma 11.892/11.393 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=24.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=22.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=22.6 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=22.6 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=22.6 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 69ms rtt min/avg/max/mdev = 22.665/22.960/24.058/0.549 ms, pipe 3, ipg/ewma 17.411/23.488 ms | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest link statuses are up | 1.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 - On interface |Ethernet2|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet2|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet2| link status on |kg-topology-CloudEOSEdge2|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:400 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'actual_output': 'connected', 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no frameLongShorts errors | 1.36 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet2| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_rx_is_enabled_on_[kg-topology-CloudEOSEdge1] | Verify LLDP receive is enabled on interesting interfaces | 2.34 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes - On interface |Ethernet2|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet2| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:400 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show lldp| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_lldp_rx_is_enabled_on_ with parameters {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEOSEdge2] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| awslogs.swix extension error is |False| On router |kg-topology-CloudEOSEdge2| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge2 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no fcsErrors errors | 0.79 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet2| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest physical state is link up | 1.52 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEOSEdge2 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:400 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:447 Verify if kg-topology-CloudEOSEdge2 DUT is a VEOS instance INFO root:tests_tools.py:451 kg-topology-CloudEOSEdge2 is a VEOS instance so returning True INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 3 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'test_suite': 'test_interface.py', 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'test_result': True, 'output_msg': None, 'actual_output': None, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEOSEdge2] | Verify filesystem is correct and expected files are present | 0.67 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEOSEdge2|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEOSEdge2|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977484, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.4354656, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.0058804, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.573602, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.6477783, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 88345.87725458996, 'inPktsRate': 58.25862739364481, 'outBitsRate': 49224.604759096605, 'updateInterval': 300.0, 'outPktsRate': 50.93636473034272}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 131398020, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.57476, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 24205041233, 'outDiscards': 0, 'outOctets': 14871167273, 'inUcastPkts': 145589398, 'inTotalPkts': 145589398, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.2267985, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.7664118, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 70861.45230818992, 'inPktsRate': 68.95410498226661, 'outBitsRate': 161038.6117811774, 'updateInterval': 300.0, 'outPktsRate': 78.89133586201204}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 156846101, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.576004, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 15745660042, 'outDiscards': 0, 'outOctets': 33327736546, 'inUcastPkts': 133016979, 'inTotalPkts': 133016979, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.388517, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698251, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 70.9 kbps (- with framing overhead), 69 packets/sec\n 5 minutes output rate 161 kbps (- with framing overhead), 79 packets/sec\n 133016979 packets input, 15745660042 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 156846101 packets output, 33327736546 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.3 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.2 kbps (- with framing overhead), 51 packets/sec\n 145589398 packets input, 24205041233 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 131398020 packets output, 14871167273 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 12 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 12 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 32 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 36 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 13 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 28 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3440508.75, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2808996, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2808704 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3490397, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1675': {'totalActiveTime': 88697, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '6572': {'totalActiveTime': 1517, 'memPct': 0.7, 'cpuPct': 0.6, 'startTime': 1600472707.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1476': {'totalActiveTime': 10724, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 12994, 'memPct': 7.5, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 8507, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 7328, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4422, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'D', 'ttyName': '?'}, '1719': {'totalActiveTime': 3655, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6810, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4533, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6648, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 511, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 35, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 243, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 371, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 812, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 187, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 410, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1444, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 729, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1969, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1459, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1591, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1555, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2899, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1475, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1743, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1924, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 413, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 673, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1186, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1468, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 3254, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2368, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 483, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1463, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1477, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2195, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1471, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1657, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 484, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 486, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1463, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 411, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 412, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1885, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 412, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 413, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1483, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 484, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 495, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1479, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 486, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 38, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 414, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 78, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '2663': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': '/bin/sh /sbin/service nginx status', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 3059, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 189, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 3277, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1546, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1629, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 244, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '6552': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600472706.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '26255': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600719661.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 455, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 194, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30935': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720680.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '31732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721401.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '32135': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721760.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440509.35, 'loadAvg': [1.39, 1.35, 1.3], 'users': 0, 'currentTime': 1600721977.061955}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.39, 1.35, 1.30\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 40-09:33:17 Sfe\n 1675 2.5 2.1 ? Sl Aug 13 1-00:38:18 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 6572 0.6 0.7 ? SNl Sep 18 00:25:17 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1476 0.3 2.6 ? S Aug 13 02:58:44 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:36:34 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:21:47 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 02:02:08 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:13:42 SuperServer\n 1719 0.1 1.2 ? S Aug 13 01:00:55 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:53:30 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:15:33 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:50:48 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:08:31 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:21 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:35 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:23 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:04:03 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:06:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:23 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:13:32 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:03:07 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:50 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:24:04 Fru\n 1524 0.0 1.8 ? S Aug 13 00:12:09 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:32:49 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:24:19 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:26:31 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:25:55 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:48:19 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:24:35 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:29:03 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:32:04 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:53 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:11:13 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:19:46 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:24:28 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:54:14 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:39:28 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:08:03 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:24:23 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:24:37 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:36:35 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:24:31 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:27:37 Qos\n 1856 0.0 1.1 ? S Aug 13 00:08:04 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:08:06 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:24:23 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:51 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:52 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:31:25 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:52 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:53 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:24:43 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:08:04 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:08:15 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:24:39 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:08:06 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:38 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:54 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:18 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2688 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:50:59 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:03:09 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:54:37 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:25:46 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:27:09 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:04:04 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n 6552 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n26255 0.0 0.0 ? S 20:21:01 00:00:00 [kworker/0:0]\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:07:35 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:03:14 nginx: worker process \n30935 0.0 0.0 ? S 20:38:00 00:00:00 [kworker/0:4]\n31732 0.0 0.0 ? S 20:50:01 00:00:00 [kworker/0:1]\n32135 0.0 0.0 ? S 20:56:00 00:00:00 [kworker/0:2]\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291568128 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291568128 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 146049, 'authorizationAllowed': 2918, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 163, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 146053\n Failed: 2\n Service unavailable: 163\n\nAuthorization\n Allowed: 2918\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'147612': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n147612 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 25, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 25 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.18, 'jitter': 0.146, 'lastReceived': 1600721392.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.002, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 590 1024 377 0.18 0.002 0.146\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.691623, 'pid': 1675, 'enabled': True, 'uptime': 3440449.2199999997, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 39 days, 19:40:49 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 134869, 'bytesOut': 378167218, 'lastHitTime': 1600721984.7001512, 'bytesIn': 21691624}}, 'bytesOut': 378167218, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 142295, 'vrf': 'default', 'lastHitTime': 1600721984.7001107, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 14697.069336140732, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 134869, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 21691624, 'commandCount': 269738, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 142299\nLast hit: 0 seconds ago\nBytes in: 21692260\nBytes out: 378169752\nRequests: 134873\nCommands: 269746\nDuration: 14697.230 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 134873 21692260 378169752 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977484, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.4354656, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.0058804, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.573602, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.6477783, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 88345.87725458996, 'inPktsRate': 58.25862739364481, 'outBitsRate': 49224.604759096605, 'updateInterval': 300.0, 'outPktsRate': 50.93636473034272}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 131398020, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.57476, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 24205041233, 'outDiscards': 0, 'outOctets': 14871167273, 'inUcastPkts': 145589398, 'inTotalPkts': 145589398, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.2267985, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.7664118, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 70861.45230818992, 'inPktsRate': 68.95410498226661, 'outBitsRate': 161038.6117811774, 'updateInterval': 300.0, 'outPktsRate': 78.89133586201204}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 156846101, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.576004, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 15745660042, 'outDiscards': 0, 'outOctets': 33327736546, 'inUcastPkts': 133016979, 'inTotalPkts': 133016979, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.388517, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698251, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 70.9 kbps (- with framing overhead), 69 packets/sec\n 5 minutes output rate 161 kbps (- with framing overhead), 79 packets/sec\n 133016979 packets input, 15745660042 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 156846101 packets output, 33327736546 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.3 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.2 kbps (- with framing overhead), 51 packets/sec\n 145589398 packets input, 24205041233 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 131398020 packets output, 14871167273 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 12 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 12 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 32 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 36 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 13 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 28 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3440508.75, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2808996, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2808704 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3490397, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1675': {'totalActiveTime': 88697, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '6572': {'totalActiveTime': 1517, 'memPct': 0.7, 'cpuPct': 0.6, 'startTime': 1600472707.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1476': {'totalActiveTime': 10724, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 12994, 'memPct': 7.5, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 8507, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 7328, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4422, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'D', 'ttyName': '?'}, '1719': {'totalActiveTime': 3655, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6810, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4533, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6648, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 511, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 35, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 243, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 371, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 812, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 187, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 410, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1444, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 729, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1969, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1459, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1591, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1555, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2899, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1475, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1743, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1924, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 413, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 673, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1186, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1468, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 3254, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2368, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 483, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1463, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1477, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2195, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1471, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1657, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 484, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 486, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1463, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 411, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 412, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1885, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 412, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 413, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1483, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 484, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 495, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1479, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 486, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 38, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 414, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 78, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '2663': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': '/bin/sh /sbin/service nginx status', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 3059, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 189, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 3277, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1546, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1629, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 244, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '6552': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600472706.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '26255': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600719661.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 455, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 194, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30935': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720680.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '31732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721401.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '32135': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721760.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440509.35, 'loadAvg': [1.39, 1.35, 1.3], 'users': 0, 'currentTime': 1600721977.061955}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.39, 1.35, 1.30\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 40-09:33:17 Sfe\n 1675 2.5 2.1 ? Sl Aug 13 1-00:38:18 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 6572 0.6 0.7 ? SNl Sep 18 00:25:17 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1476 0.3 2.6 ? S Aug 13 02:58:44 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:36:34 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:21:47 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 02:02:08 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:13:42 SuperServer\n 1719 0.1 1.2 ? S Aug 13 01:00:55 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:53:30 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:15:33 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:50:48 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:08:31 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:21 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:35 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:23 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:04:03 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:06:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:23 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:13:32 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:03:07 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:50 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:24:04 Fru\n 1524 0.0 1.8 ? S Aug 13 00:12:09 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:32:49 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:24:19 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:26:31 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:25:55 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:48:19 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:24:35 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:29:03 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:32:04 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:53 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:11:13 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:19:46 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:24:28 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:54:14 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:39:28 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:08:03 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:24:23 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:24:37 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:36:35 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:24:31 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:27:37 Qos\n 1856 0.0 1.1 ? S Aug 13 00:08:04 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:08:06 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:24:23 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:51 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:52 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:31:25 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:52 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:53 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:24:43 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:08:04 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:08:15 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:24:39 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:08:06 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:38 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:54 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:18 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2688 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:50:59 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:03:09 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:54:37 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:25:46 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:27:09 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:04:04 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n 6552 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n26255 0.0 0.0 ? S 20:21:01 00:00:00 [kworker/0:0]\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:07:35 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:03:14 nginx: worker process \n30935 0.0 0.0 ? S 20:38:00 00:00:00 [kworker/0:4]\n31732 0.0 0.0 ? S 20:50:01 00:00:00 [kworker/0:1]\n32135 0.0 0.0 ? S 20:56:00 00:00:00 [kworker/0:2]\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291568128 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291568128 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 146049, 'authorizationAllowed': 2918, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 163, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 146053\n Failed: 2\n Service unavailable: 163\n\nAuthorization\n Allowed: 2918\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'147612': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n147612 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 25, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 25 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.18, 'jitter': 0.146, 'lastReceived': 1600721392.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.002, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 590 1024 377 0.18 0.002 0.146\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.691623, 'pid': 1675, 'enabled': True, 'uptime': 3440449.2199999997, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 39 days, 19:40:49 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 134869, 'bytesOut': 378167218, 'lastHitTime': 1600721984.7001512, 'bytesIn': 21691624}}, 'bytesOut': 378167218, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 142295, 'vrf': 'default', 'lastHitTime': 1600721984.7001107, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 14697.069336140732, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 134869, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 21691624, 'commandCount': 269738, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 142299\nLast hit: 0 seconds ago\nBytes in: 21692260\nBytes out: 378169752\nRequests: 134873\nCommands: 269746\nDuration: 14697.230 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 134873 21692260 378169752 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:251 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977484, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.4354656, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.0058804, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.573602, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.6477783, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 88345.87725458996, 'inPktsRate': 58.25862739364481, 'outBitsRate': 49224.604759096605, 'updateInterval': 300.0, 'outPktsRate': 50.93636473034272}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 131398020, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.57476, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 24205041233, 'outDiscards': 0, 'outOctets': 14871167273, 'inUcastPkts': 145589398, 'inTotalPkts': 145589398, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.2267985, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.7664118, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 70861.45230818992, 'inPktsRate': 68.95410498226661, 'outBitsRate': 161038.6117811774, 'updateInterval': 300.0, 'outPktsRate': 78.89133586201204}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 156846101, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600721975.576004, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 15745660042, 'outDiscards': 0, 'outOctets': 33327736546, 'inUcastPkts': 133016979, 'inTotalPkts': 133016979, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.388517, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698251, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 70.9 kbps (- with framing overhead), 69 packets/sec\n 5 minutes output rate 161 kbps (- with framing overhead), 79 packets/sec\n 133016979 packets input, 15745660042 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 156846101 packets output, 33327736546 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.3 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.2 kbps (- with framing overhead), 51 packets/sec\n 145589398 packets input, 24205041233 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 131398020 packets output, 14871167273 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 12 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 12 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 32 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 36 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 13 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 28 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3440508.75, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2808996, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2808704 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3490397, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1675': {'totalActiveTime': 88697, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '6572': {'totalActiveTime': 1517, 'memPct': 0.7, 'cpuPct': 0.6, 'startTime': 1600472707.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1476': {'totalActiveTime': 10724, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 12994, 'memPct': 7.5, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 8507, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 7328, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4422, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'D', 'ttyName': '?'}, '1719': {'totalActiveTime': 3655, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6810, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4533, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6648, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 511, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 35, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 243, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 371, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 7, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 812, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 187, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 410, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1444, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 729, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1969, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1459, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1591, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1555, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2899, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1475, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1743, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1924, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 413, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 673, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1186, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1468, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 3254, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2368, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 483, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1463, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1477, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2195, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1471, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1657, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 484, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 486, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1463, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 411, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 412, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1885, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 412, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 413, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1483, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 484, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 495, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1479, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 486, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 38, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 414, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 78, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '2663': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721976.0, 'cmd': '/bin/sh /sbin/service nginx status', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 3059, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 189, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 3277, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1546, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1629, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 244, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '6552': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600472706.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '26255': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600719661.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 455, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 194, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30935': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600720680.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '31732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721401.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '32135': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600721760.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3440509.35, 'loadAvg': [1.39, 1.35, 1.3], 'users': 0, 'currentTime': 1600721977.061955}}, 'text': " 20:59:37 up 39 days, 19:41, 0 users, load average: 1.39, 1.35, 1.30\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 40-09:33:17 Sfe\n 1675 2.5 2.1 ? Sl Aug 13 1-00:38:18 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 6572 0.6 0.7 ? SNl Sep 18 00:25:17 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1476 0.3 2.6 ? S Aug 13 02:58:44 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:36:34 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:21:47 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 02:02:08 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:13:42 SuperServer\n 1719 0.1 1.2 ? S Aug 13 01:00:55 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:53:30 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:15:33 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:50:48 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:08:31 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:21 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:35 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:23 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:04:03 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:06:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:23 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:13:32 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:03:07 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:50 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:24:04 Fru\n 1524 0.0 1.8 ? S Aug 13 00:12:09 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:32:49 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:24:19 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:26:31 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:25:55 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:48:19 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:24:35 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:29:03 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:32:04 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:53 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:11:13 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:19:46 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:24:28 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:54:14 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:39:28 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:08:03 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:24:23 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:24:37 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:36:35 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:24:31 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:27:37 Qos\n 1856 0.0 1.1 ? S Aug 13 00:08:04 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:08:06 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:24:23 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:51 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:52 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:31:25 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:52 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:53 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:24:43 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:08:04 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:08:15 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:24:39 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:08:06 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:38 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:54 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:18 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2688 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:50:59 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:03:09 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:54:37 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:25:46 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:27:09 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:04:04 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n 6552 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n26255 0.0 0.0 ? S 20:21:01 00:00:00 [kworker/0:0]\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:07:35 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:03:14 nginx: worker process \n30935 0.0 0.0 ? S 20:38:00 00:00:00 [kworker/0:4]\n31732 0.0 0.0 ? S 20:50:01 00:00:00 [kworker/0:1]\n32135 0.0 0.0 ? S 20:56:00 00:00:00 [kworker/0:2]\n"}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291568128 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291568128 bytes free)\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 146049, 'authorizationAllowed': 2918, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 163, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 146053\n Failed: 2\n Service unavailable: 163\n\nAuthorization\n Allowed: 2918\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'147612': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600721964, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n147612 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 25, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 25 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.18, 'jitter': 0.146, 'lastReceived': 1600721392.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.002, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 590 1024 377 0.18 0.002 0.146\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.691623, 'pid': 1675, 'enabled': True, 'uptime': 3440449.2199999997, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 39 days, 19:40:49 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 134869, 'bytesOut': 378167218, 'lastHitTime': 1600721984.7001512, 'bytesIn': 21691624}}, 'bytesOut': 378167218, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 142295, 'vrf': 'default', 'lastHitTime': 1600721984.7001107, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 14697.069336140732, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 134869, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 21691624, 'commandCount': 269738, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 142299\nLast hit: 0 seconds ago\nBytes in: 21692260\nBytes out: 378169752\nRequests: 134873\nCommands: 269746\nDuration: 14697.230 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 134873 21692260 378169752 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:256 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:260 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:263 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:319 Open log file for logging test show commands INFO root:tests_tools.py:323 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEOSEdge2] | Verify hostname is set on device is correct | 3.55 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2| TEST is hostname correct. GIVEN hostname |kg-topology-CloudEOSEdge2|. WHEN hostname is |kg-topology-CloudEOSEdge2|. THEN test case result is |True|. OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEOSEdge2 FQDN: kg-topology-CloudEOSEdge2 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'} INFO root:tests_tools.py:400 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show hostname| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_host.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_host.py exists in results file at index 0 INFO root:tests_tools.py:565 Find Index for test case: test_if_hostname_is_correcet_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_hostname_is_correcet_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_hostname_is_correcet_on_ with parameters {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'test_suite': 'test_host.py', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'actual_output': 'kg-topology-CloudEOSEdge2', 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest protocol statuses are up | 0.78 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 - On interface |Ethernet2|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet2| link prootocol statuses on |kg-topology-CloudEOSEdge2|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:400 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 9 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'actual_output': 'up', 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 9 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest does not have output errors | 2.35 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet2| has output errors on |kg-topology-CloudEOSEdge2|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no frameTooShorts errors | 2.53 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet2| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest does not have input errors | 3.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet2| counters have input errors on |kg-topology-CloudEOSEdge2|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no alignmentErrors errors | 2.21 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet2| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no frameLongShorts errors | 2.26 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet2| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no outDiscards | 1.26 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet2| counters has outbound discards on |kg-topology-CloudEOSEdge2| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 8 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 8 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no fcsErrors errors | 3.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet2| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no inDiscards | 2.78 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet2| counters has inbound discards on |kg-topology-CloudEOSEdge2|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEOSEdge2] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| message |critical| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |warning| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |ECC| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |servers errors| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show logging| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show logging| on kg-topology-CloudEOSEdge2 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 21 20:06:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:07:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:07:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:08:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:08:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:10:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:10:41 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:11:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:11:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:32:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:32:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:08 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:33:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:33:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:34:33 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:34:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:35:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:35:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:56:23 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:56:51 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:11 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:57:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:57:35 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:58:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 21 20:58:31 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 21 20:59:24 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_tx_is_enabled_on_[kg-topology-CloudEOSEdge2] | Verify LLDP transmit is enabled on interesting interfaces | 2.44 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True| TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|. GIVEN LLDP transmit state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes - On interface |Ethernet2|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True| TEST if interface |Ethernet2| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|. GIVEN LLDP transmit state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_lldp_tx_is_enabled_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_lldp_tx_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:400 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show lldp| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_tx_is_enabled_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_lldp_tx_is_enabled_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_lldp_tx_is_enabled_on_ with parameters {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_tx_is_enabled_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_lldp_tx_is_enabled_on_ exists in results file at index 1 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEOSEdge2] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show ntp associations| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 589 1024 377 0.18 0.002 0.146 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no alignmentErrors errors | 5.51 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet2| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:400 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_interface.py exists in results file at index 1 INFO root:tests_tools.py:565 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEOSEdge2] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 20:59:37 up 39 days, 19:41, 0 users, load average: 1.39, 1.35, 1.30 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 40-09:33:17 Sfe 1675 2.5 2.1 ? Sl Aug 13 1-00:38:17 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 6572 0.6 0.7 ? SNl Sep 18 00:25:17 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1476 0.3 2.6 ? S Aug 13 02:58:44 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:36:34 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:21:47 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 02:02:08 IpRib 1703 0.1 1.7 ? S Aug 13 01:13:42 SuperServer 1719 0.1 1.2 ? S Aug 13 01:00:55 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:53:30 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:15:33 Bgp 3369 0.1 1.4 ? S Aug 13 01:50:48 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:08:31 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:21 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:35 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:23 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:04:03 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:06:11 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:07 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:23 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:30 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:13:32 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:03:07 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:50 StageMgr 1521 0.0 1.4 ? S Aug 13 00:24:04 Fru 1524 0.0 1.8 ? S Aug 13 00:12:09 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:32:49 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:24:19 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:26:31 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:25:55 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:48:19 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:24:35 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:29:03 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:32:04 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:53 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:11:13 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:19:46 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:24:28 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:54:14 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:39:28 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:08:03 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:24:23 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:24:37 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:36:35 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:24:31 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:27:37 Qos 1856 0.0 1.1 ? S Aug 13 00:08:04 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:08:06 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:24:23 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:51 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:52 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:31:25 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:52 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:53 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:24:43 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:08:04 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:08:15 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:24:39 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:08:06 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:38 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:54 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:18 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2680 0.0 0.0 ? Rs 20:59:36 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:50:59 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:03:09 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:54:37 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:25:46 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:27:09 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:04:04 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 6552 0.0 0.0 ? S Sep 18 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 26255 0.0 0.0 ? S 20:21:01 00:00:00 [kworker/0:0] 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:07:35 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:03:14 nginx: worker process 30935 0.0 0.0 ? S 20:38:00 00:00:00 [kworker/0:4] 31732 0.0 0.0 ? S 20:50:01 00:00:00 [kworker/0:1] 32135 0.0 0.0 ? S 20:56:00 00:00:00 [kworker/0:2] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEOSEdge2] | Verify memory is not exceeding high utlization | 0.55 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ - On router |kg-topology-CloudEOSEdge2| memory utilization percent is |36.19196144196814%| and should be under |70%| TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2|. GIVEN memory utilization is less than |70|. WHEN memory utilization is |36.19196144196814|. THEN test case result is |True|. OUTPUT of |show version| is: Arista vEOS Hardware version: Serial number: DE52F26D16E91F22BB1B507175C8C765 System MAC address: 0635.02ca.8297 Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 4 days, 19 hours and 41 minutes Total memory: 7761392 kB Free memory: 2796104 kB -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:372 Setting testcase name to test_memory_utilization_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show version| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show version| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_memory.py exists in results file at index 3 INFO root:tests_tools.py:565 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |36.19196144196814|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2796104 kB\n\n', 'result': True, 'test_suite': 'test_memory.py', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEOSEdge2| memory utilization percent is |36.19196144196814%| and should be under |70%|', 'actual_output': 36.19196144196814, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEOSEdge2] | Verify tacacs messages are received correctly | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:424 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:430 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEOSEdge2| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEOSEdge2] | Verify tacacs messages are sending correctly | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:424 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:430 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEOSEdge2| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEOSEdge2] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show zerotouch| on kg-topology-CloudEOSEdge2 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEOSEdge2| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEOSEdge2] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEOSEdge2 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEOSEdge2| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7291568128 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_rx_is_enabled_on_[kg-topology-CloudEOSEdge2] | Verify LLDP receive is enabled on interesting interfaces | 3.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes - On interface |Ethernet2|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet2| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:348 Setting testcase name to test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:400 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show lldp| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 36.19196144196814, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |36.19196144196814|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2796104 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| memory utilization percent is |36.19196144196814%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:583 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_lldp_rx_is_enabled_on_ with parameters {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:550 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 [{'name': 'test_host.py', 'test_cases': [{'duts': [{'actual_output': 'kg-topology-CloudEosRR1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR1|.\nWHEN hostname is |kg-topology-CloudEosRR1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEosRR2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEosRR2|.\nWHEN hostname is |kg-topology-CloudEosRR2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge1', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge1|.\nWHEN hostname is |kg-topology-CloudEOSEdge1|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}, {'actual_output': 'kg-topology-CloudEOSEdge2', 'comment': 'TEST is hostname correct.\nGIVEN hostname |kg-topology-CloudEOSEdge2|.\nWHEN hostname is |kg-topology-CloudEOSEdge2|.\nTHEN test case result is |True|.\nOUTPUT of |show hostname| is :\n\nHostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n', 'description': 'Verify hostname is set on device is correct', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': None, 'fail_reason': '', 'name': 'test_if_hostname_is_correcet_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2|', 'show_cmd': 'show hostname', 'test_result': True, 'test_suite': 'test_host.py'}], 'name': 'test_if_hostname_is_correcet_on_'}]}, {'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 19 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 48.8 kbps (- with framing overhead), 44 packets/sec\n 5 minutes output rate 94.0 kbps (- with framing overhead), 47 packets/sec\n 77259719 packets input, 9655327290 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 86176971 packets output, 16471228302 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 38 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 42 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 25 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 46.8 kbps (- with framing overhead), 41 packets/sec\n 5 minutes output rate 90.4 kbps (- with framing overhead), 43 packets/sec\n 78378489 packets input, 9784753822 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 87876947 packets output, 16614496941 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 23 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 37 minutes, 52 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 46 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 55.1 kbps (- with framing overhead), 51 packets/sec\n 5 minutes output rate 119 kbps (- with framing overhead), 56 packets/sec\n 151211386 packets input, 17776325222 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 179673215 packets output, 38396533157 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 37 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 41.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 28.1 kbps (- with framing overhead), 33 packets/sec\n 170343351 packets input, 30660889789 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 151031136 packets output, 17735462816 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 39 days, 19 hours, 34 minutes, 17 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 39 days, 19 hours, 40 minutes, 35 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 38 minutes, 1 second\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 39 days, 19 hours, 40 minutes, 52 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 34 minutes, 17 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 39 days, 19 hours, 37 minutes, 59 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}, {'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP transmit is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP transmit state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_tx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP txEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_tx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 37.88877046797791, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.88877046797791|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2940696 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |37.88877046797791%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 37.96644368092234, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |37.96644368092234|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7818736 kB\nFree memory: 2953212 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |37.96644368092234%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.38045024157358, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.38045024157358|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 42 minutes\nTotal memory: 7818736 kB\nFree memory: 2751468 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.38045024157358%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 36.19196144196814, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |36.19196144196814|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 4 days, 19 hours and 41 minutes\nTotal memory: 7761392 kB\nFree memory: 2796104 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge2| memory utilization percent is |36.19196144196814%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:557 Test suite test_lldp.py exists in results file at index 2 INFO root:tests_tools.py:565 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:570 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:578 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEOSEdge2] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show ntp status| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 25 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEOSEdge2] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:683 Opening tests_definitions.yaml for write INFO root:tests_tools.py:687 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:670 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname'}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}, {'name': 'test_if_lldp_tx_is_enabled_on_', 'description': 'Verify LLDP transmit is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| |ec2-user| username is |configured| On router |kg-topology-CloudEOSEdge2| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:374 Identify test case and return parameters INFO root:tests_tools.py:377 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:380 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:382 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:385 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:400 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:404 Verified output for show command |show running-config section username| on kg-topology-CloudEOSEdge2 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEOSEdge2| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEOSEdge2| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||